Zapier Webhooks + Google Sheets + Cotter: Send Additional Fields Data to Your Google Sheets using Zapier

Know who logs in to your site and get the list of user emails, along with their names and other additional fields data imported to Google Sheets.

How it works

In our previous Zapier + Google Sheets tutorial, we were able to send user emails to Google Sheets. In this tutorial, we will be able to send user emails, as well as other user data from additional fields such as name and address to Google Sheets using Zapier Webhooks.

For this tutorial, please make sure that you have followed the HTMLReact, or Webflow Tutorial to integrate Cotter Login Form to your website.

Cotter doesn't store your additional fields data, so you can't use Cotter's Zapier. However, you can still send additional fields data to Google Sheets (for example) using Zapier Webhooks.

You'll need to use Zapier Webhooks to receive the data.


  1. Add Cotter Zap using this invite link:

  2. Click "Make a Zap".

Zapier Webhook Zap

  1. Under "When this happens ..." choose "Webhooks by Zapier" and choose the trigger "Catch Hook".

Copy the custom webhook URL. We're going to send the response from Cotter to this URL.

2. Send Cotter's response to the Zapier URL

var cotter = new Cotter({
      ApiKeyID: "API_KEY_ID",  // 👈 Specify your API KEY ID here
      AdditionalFields: [      // 👈 Add your additional fields here
          label: "Full Name",
          name: "name",
          placeholder: "Enter your full name"
          label: "Address",
          name: "address",
          placeholder: "Enter your address"
      .then((response) => {
        sendToZapier(response); // 👈 send to Zapier
      .catch((err) => console.log(err));
  }, []);

  const sendToZapier = async (payload) => {
    const zapierURL = "ZAPIER_WEBHOOK_URL"; // 👈 specify the URL here
    try {
      const response = await fetch(zapierURL, {
        method: "POST",
        mode: "cors",
        body: JSON.stringify(payload)
      const resp = await response.json();
    } catch (e) {

Send the response from Cotter to Zapier using a POST HTTP request, using fetch or similar functions.

Try this Codesandbox with the code above.

3. Test Zapier Webhook

After adding the code above, try logging in while filling in all the additional fields. Once successful, press "Test Trigger" in Zapier.

You should see something like this:

You'll get the user's email and the additional fields data.

Google Sheets Zap

To send the data to Google sheets, add a Google sheets zap.

  1. Under "Do this ...", choose Google Sheets.

  2. Choose action: "Lookup Spreadsheet Row".

We want to look at existing rows to find the user and only add a new row if the user does not exist (new user).

2. Choose your account and spreadsheet

Create a Google Sheets with these headers. Then, choose that spreadsheet in the Zap.

3. Select which column to check if the user already exists

4. Check the box "Create Google Sheets Spreadsheet Row if it doesn't exist yet" and fill out the fields as follows:

This way, it will either grab the existing user row by checking if the user ID is already in the spreadsheet, or it will create a new row if the user doesn't exist.

5. Press "Continue" > "Test and Review"

You should see something like this:

You should also see the row added to your Google Sheets:

That's it! 🎉

Turn on Zap and you'll start receiving user data in your Google Sheets.

Questions & Feedback

Come and talk to the founders of Cotter and other developers who are using Cotter on Cotter's Slack Channel.

Ready to use Cotter?

If you enjoyed this tutorial and want to integrate Cotter into your website or app, you can create a free account and check out our documentation.

If you need help, ping us on our Slack channel or email us at

Made in Typedream