Sending Data to Appcues Using Zapier

Zapier is an online automation tool that connects your favorite apps, such as Gmail, Slack, MailChimp, and over 1,000 more. You can connect two or more apps to automate repetitive tasks without coding or relying on developers to build the integration. Using Zapier with the Appcues HTTP API, you can capture user properties and behaviors in other apps and send them to Appcues to enhance flow targeting and personalization.


In order for your users' data to map correctly to Appcues, your Apps must utilize the same userId values as with Appcues in your implementation of the Appcues.identify method. That way, user properties and events will be added and updated to the right user in Appcues. Otherwise, this webhook will be creating new user profiles instead of updating or adding new properties, and ultimately your flows won't show to the correct users when using these new values.


Create a new Zap and follow the steps in setting up your Trigger. The Trigger settings will tell when Zapier should send data to Appcues. For example, you can set a Trigger on Calendly to add the event "Scheduled Demo Call" to your users' event history. Then, you'll be able to create Appcues flows targeted to users who scheduled a demo call through Calendly.


The Action settings is where you'll be configuring Appcues. First, set your App to "Webhooks by Zapier" under the step "Choose App."

Under "Choose Action", select the "Custom Request" option. From there, you'll be editing the Custom Request Templates as follows:


This should be set to "Post."


The Appcues HTTP API URL will follow this format{account_id}/users/{user_id}/activity

You will need to replace {account_id} with your Appcues account ID. And for the {user_id} value, you will need to select the correct field from the App in the Trigger settings that matches your Appcues users' user_id. 

In the below example, 1234 is the account_id and the green icon represents a field from our app in the Trigger settings. Again, this field should have values that match your Appcues users' user_id.

Data Pass-Through?

This setting can be left blank.


This is where you will define the data to be sent to Appcues from your App. Your data should follow a similar format as this example:

  "profile_update": {
    "is_inside_sale": true
  "events": [
      "name": "Scheduled Demo Call",
      "timestamp": {{zap_meta_timestamp}}

The above code snippet represents a data object with two properties: "profile_update" and "events". Your data does not require both data types, but needs to have at least one.

"profile_update" should be an object with key and value pairs that represent the user properties to add to your user's profile.

"events" should be one array containing event objects, which require a name and timestamp of the event. In this example, we are using Zapier's method of defining the time when this Zap fires, using `{{zap_meta_timestamp}}`.

You can use the fields from your App to send data specific to the App to Appcues.


This setting should be set to "no".

Basic Auth (optional)

You can skip this setting and leave it blank.

Headers (optional)

This setting should have the values "Content-Type" and "application/json" values like below:

Once you click "Continue", you'll be able to test this webhook. A successful webhook test will return a status message of "ok" : "true"

Finally, you'll want to confirm that your data has passed through to Appcues. Go to the Targeting settings of any of your flows and look under the Property and Events targeting to see your new values: