Skip to content
  • Integrations
  • Webhooks

Connect Zapier to Kinde

This guide will walk you through connecting Kinde webhooks to Zapier, allowing you to automate workflows based on events that occur in your Kinde account. When events like user creation or authentication happen in Kinde, they can trigger automated actions in Zapier.

  • A Kinde account with an available webhook slot (Sign up for free)
  • A Zapier account (Professional plan or higher required for webhook triggers)
  • A Google account with access to Google Sheets (Sign up for free)

Step 1: Create a Zap in Zapier

Link to this section
  1. Log in to your Zapier account and select Create > Zaps

  2. In the Trigger step, search for Webhooks and select it.

  3. In the Event dropdown, select Catch Raw Hook, then select Continue

  4. In the Test tab, Zapier will generate a unique webhook URL for your Zap. The URL will look like: https://hooks.zapier.com/hooks/catch/1234567/abcdefg/

    Copy this URL - you’ll need it in the next step.

    Keep this Zap open - you’ll return to it after configuring the webhook in Kinde.

Step 2: Create a webhook in Kinde

Link to this section
  1. In your Kinde dashboard, go to Settings > Webhooks

  2. Select Add webhook

  3. Give your webhook a descriptive name (e.g., “Kinde Zapier Google Sheets”)

  4. Enter a description explaining what this webhook is for (e.g., “When user is created”)

  5. In the Endpoint URL field, paste the Zapier webhook URL you copied in Step 1

  6. Select Add event to select which events you want to trigger this webhook

    For this example, select user.created to trigger the webhook when a new user is created

    Common events you might want to monitor:

    • user.created - When a new user signs up
    • user.updated - When user information is updated
    • user.authenticated - When a user logs in
    • organization.created - When a new organization is created

    For a complete list of available events, see Add and manage webhooks

  7. Select Save to create the webhook

Step 3: Test the webhook trigger

Link to this section
  1. In your Kinde dashboard, create a test user to trigger the webhook:
    • Go to Users and select Add user
    • Enter test user details (e.g., name: “Test User”, email: “test@example.com”)
    • Select Save
  2. Return to Zapier and select Test trigger in the trigger step
  3. You should see the webhook data appear (request A). The data will be a raw JWT token string in the body
  4. Select Continue with selected record to proceed to the next step
  5. Zapier will open a new popup. Search for Code and select it

Step 4: Decode the JWT using Zapier Code action

Link to this section

Since Kinde sends webhook data as a JWT token, you’ll need to decode it to access the user information. Zapier’s Code action allows you to run JavaScript to decode the JWT.

  1. Select Code by Zapier and from the Action event dropdown, select Run JavaScript as the action. Select Continue

  2. In the Input Data field, add a field called jwt and map it to the Raw Body from the webhook trigger

    zapier custom code

  3. In the Code field, paste the following JavaScript to decode the JWT, replacing the existing code:

    // Function to decode a JWT token
    function decodeJWT(token) {
    const parts = token.split('.');
    if (parts.length !== 3) {
    throw new Error('Invalid JWT token');
    }
    const payload = parts[1].replace(/-/g, '+').replace(/_/g, '/');
    const padded = payload + '='.repeat((4 - (payload.length % 4)) % 4);
    const decoded = JSON.parse(Buffer.from(padded, 'base64').toString('utf-8'));
    return decoded;
    }
    // Get the JWT from input data
    const jwt = inputData.jwt;
    // Decode the JWT
    const decoded = decodeJWT(jwt);
    // Extract user data from the decoded payload
    const userData = decoded.data.user || {};
    // Return the decoded data
    return {
    firstName: userData.first_name || '',
    lastName: userData.last_name || '',
    email: userData.email || '',
    fullName: `${userData.first_name || ''} ${userData.last_name || ''}`.trim(),
    userId: userData.id || '',
    rawData: decoded
    };
  4. Select Continue, then Test step to verify the JWT is decoded correctly.

  5. You should see the decoded user data including first name, last name, and email

  6. Select Publish

Step 5: Add Google Sheets action

Link to this section

Now that you have decoded the JWT, you can use the extracted data in your Zap action. For this example, we’ll add the user to a Google Sheet.

  1. In Google Sheets, create a new spreadsheet (e.g. “Kinde Zapier”) with the following columns:

    • firstname
    • lastname
    • email
  2. In Zapier, edit your Zap and select the plus icon + to add another step after the Code action

  3. Search for Google Sheets and select it

  4. From the Action event dropdown select Create Spreadsheet Row as the action

  5. Connect your Google account and allow permissions to access your Google Sheets. Select Continue

  6. Select the drive, spreadsheet, and worksheet where you want to add the user data

  7. Map the fields by selecting the plus icon + next to the fields

    • firstname: Use the First Name field from the Code step output
    • lastname: Use the Last Name field from the Code step output
    • email: Use the Email field from the Code step output

    zapier google sheets

  8. Select Continue

  9. Select Test step to see the Google Sheet populated with the user data

    zapier google sheets sample data

  10. Select Publish to activate your Zap

Step 6: Test the complete integration

Link to this section
  1. In your Kinde dashboard, go to Users and select Add user
  2. Create a new user with a name and email address
  3. Select Save to create the user
  4. The webhook will automatically trigger, sending the user data to Zapier
  5. Zapier will decode the JWT, extract the user information, and add it to your Google Sheet
  6. Check your Google Sheet to verify the user was added with the correct name and email
  7. You can also check Zapier’s Task History to see if your Zap ran successfully

Watch the video

Link to this section

Now that you’ve successfully connected Kinde webhooks to Zapier, you can extend this integration to automate many other workflows:

  • Send team alerts to Slack or Discord channels when important events occur
  • Automatically create contacts in Salesforce, HubSpot, or Pipedrive when users are created or updated
  • Add user records to Airtable, Notion databases, or MySQL databases