Appcues Integrations List

Analytics Tools

Engagement/Messaging Products

CRM/Customer Data Products

Connector Products

Google Analytics

Why integrate Google Analytics with Appcues?

Integrating Google Analytics with Appcues to find out how different acquisition channels affect user interactions with your flows. This integration can help you identify where your most engaged and active users come from to help you focus in on marketing efforts.

What you'll need
  • A Google Analytics account and an Appcues account, both fully installed across your site pages and domains
How to use this integration

Enable Google Analytics at your integrations page by hovering over the Google Analytics integration and selecting Activate.

Note: If you are a Segment user, integrate Appcues with Google Analytics directly through your integrations page. Enabling the integration via Segment may omit flow details.

Once Google Analytics and Appcues are integrated, you can find Appcues events under Behavior > Events > Overview in your Google Analytics Reporting tab. 

Your Google Analytics account will receive all events triggered by Appcues flows and checklists. These events will have the following properties:

  • Category: "appcues"
  • Action: the name of the event, e.g. "flow_started"
  • Label: the id of the Appcues flow or checklist that triggered the event


Amplitude and Appcues have partnered to create a bi-directional flow of information enabling customers to maximize the value of both solutions. Completing the two-way integration requires set up in both Appcues and Amplitude. 

Appcues to Amplitude:

Why integrate Amplitude with Appcues?

Integrating Amplitude with Appcues will help you measure the impact of your flows. Get insight into how churned users interact with flows and experiment with guiding users to their activation or "Aha" moments with flows. Create funnels in Amplitude to test and adjust your flows for the best impact.

For onboarding specifically, you can also reference our guide here

What you'll need
  • An Amplitude account and Appcues account, both fully installed on your app across the same pages and domains. Once Amplitude and Appcues are integrated, you can view Appcues interactions under User Activity > Event Stream. Appcues events appear on a general level, such as Flow Completed, Flow Started, Step Skipped, etc, and you can view further details like event properties by expanding individual events.
    To get the most out of this integration, you'll also want to be tracking events from your own application in Amplitude. These events might look like   User signed up, created project, invited user, sent email, etc. -- it all depends on what your platform is and what your users can and should accomplish within it.
  • Creating a funnel

    To measure the impact your Appcues flow has on your users behavior, define the Appcues event first in your funnel and follow it with the corresponding behavior.  
    In Amplitude, hit Create Chart. For a funnel report, select Funnel Analysis.
    In our example, we want to encourage users to add a task in our demo app. We created a flow that shows them how to do so (  'Add tasks' tour) and now want to how many users who viewed the flow actually added a task in their account. Because we're looking at the impact of the flow on the behavior of actually creating hotspots, we'll use that flow event first. Next, we select the event of Created TaskCreated Task is a non-Appcues event we are capturing on our demo platform. 
    View your results below.

  • Need more help? Check out this detailed post:   How to Build a User Onboarding Funnel with Amplitude

Amplitude to Appcues:

For more information on Amplitude's integration to send data to Appcues, check out Amplitude's documentation


Mixpanel and Appcues have partnered to create a bi-directional flow of information enabling customers to maximize the value of both solutions. Completing the two-way integration requires set up in both Appcues and Mixpanel. 

Appcues to Mixpanel:

Why send Appcues data to Mixpanel?

After you've built a user onboarding experience in Appcues, you can track its performance in Mixpanel. Setting up onboarding, activation, and retention funnels in Mixpanel can also help you test and adjust your flows for these metrics.

What you'll need:
  • A Mixpanel account and Appcues account, both fully installed on your site and domains
  • Note: If you've installed Appcues via Segment, integrating Segment with Mixpanel will automatically integrate your Mixpanel and Appcues accounts. Do not enable both a Segment and Mixpanel integration: doing so will result in duplicate data. Learn more about installing Segment here.
How to use this integration

Activating the flow of data from Appcues to Mixpanel is as simple as clicking the Mixpanel card on the Integrations page inside of your Appcues account. Once activated, you can find Appcues data as custom events in Mixpanel. At first glance, you'll be able to see general events such as  Flow Completed, Flow Started, Step Skipped, etc. If you'd like to view these events in more detail you can separate them by specifics like flowName or flowID.

Create your funnel

To see the effect Appcues has on your users' behaviors, create a funnel in Mixpanel to see how many users complete a desired outcome based on the Appcues flow(s) they view. In this example, we want to increase our users' activation event of adding a task.

To improve activation of this event, we created a flow called 'Add Task' tooltips. To measure the success of this flow, we can create a funnel that shows us how many users who started the 'Add Task' tooltips actually did add a task to their account.

Save the steps in your Mixpanel funnel to view your results.

Need more help? Check out this detailed post: How to Set Up Mixpanel Funnels for User Onboarding Success.

Mixpanel to Appcues:

Why sync Mixpanel cohorts to Appcues?

Mixpanel makes it easy to create cohorts of users based on any number of behaviors or attributes. When you sync these cohorts to Appcues, you can use them to target Appcues content.

How it works

To connect the Mixpanel cohort sync integration, you'll need your Appcues Legacy API key. This can be found on the API Keys page (Also called the API Key on the account settings page for legacy plan customers). Copy this key and save it for the next step.

In your Mixpanel account, navigate to Data Management > Integrations. Click Connect under the Appcues integration and enter your Appcues Legacy API key.

Navigate to the Mixpanel cohorts page (Users > Cohorts). Create a new cohort, or select an existing one. At the ellipsis menu to the right, select Export To > Appcues. Choose whether you'd like to sync this data to Appcues once, or on an ongoing basis ("Dynamic sync").

After clicking Begin Sync, you should see a success message on the screen.

Over the next few minutes, Mixpanel will push the cohort information to Appcues, where it can be found as a user property in our targeting interface.

To target members of this cohort, check that the property value equals true.

That's it! If you've chosen a dynamic/ongoing sync from Mixpanel, this user property will be updated every several hours to reflect the current membership of the cohort, and no further effort should be required on your end to keep this list up to date.

For more information on Mixpanel's integration, check out Mixpanel's documentation


Heap and Appcues have partnered to create a bi-directional flow of information enabling customers to maximize the value of both solutions. Completing the two-way integration requires set up in both Appcues and Heap. How to use this integration:

Appcues to Heap:

Enable Heap at your Integrations page by hovering over the Heap integration and selecting Activate. 

Once Heap and Appcues are integrated, you can automatically find Appcues data under your Events category, where Source = ‘Appcues’. Appcues events appear on a general level, such as Flow Completed, Flow Started, Step Skipped, etc. (note for Step Interacted only stepChildId, stepChildNumber, and interactionType will be available and for Form Submitted only interactionType will be available in Heap)

Once you turn on this integration in Heap, you’ll have the option to do a one-time immediate sync, or schedule a recurring sync.To get the most out of this integration, you'll also want to be tracking events from your own application in Heap. These events might look like User signed up, created project, invited user, sent email, etc. -- it all depends on what your platform is and what your users can and should accomplish within it.

Defining your event

By creating a new event you can specify which Appcues flow you'd like to use in your Heap analysis. For instance, you can limit your event to a certain flow by using a filter when creating your event:

Creating your funnel

You can then use Heap analysis modules - such as funnels - to look at adoption such as: how many users who start a flow complete it? Select the two events you created (Flow Started and Flow Completed) and click run query to view your results:

Heap to Appcues:

For more information on Heap's integration to send data to Appcues, check out Heap's documentation.


Why integrate Kissmetrics with Appcues?

Integrating Kissmetrics with Appcues will help you measure the impact of your flows. Get insight into how churned users interact with flows and experiment with guiding users to their activation or "Aha" moments with flows. Create funnels in Kissmetrics to test and adjust your flows for the best impact.


Why integrate Klaviyo with Appcues?

Integrating Klaviyo with Appcues will help you target users based on what they did with Appcues. For example, send an email a week later if a user skipped your feature announcement tour.


Why integrate Localytics with Appcues?

Integrating Localytics with Appcues can help you do things such as send a push notification to a user who completed a flow. If you track your users across devices this is a great UX. Ask users if they want to try out and app feature, then notify them on their phone with a deep-link to it. 

  1. Go to “Audiences”, create a new audience for messaging
  2. Choose “Performed Event”, “Flow Completed (Appcues)”

Add a filter, and pick the flowId from the menu Localytics auto-completes for you

Why integrate with Appcues?

Integrating with Appcues will help you target users based on what they did with Appcues. For example, send a follow up on an NPS survey based on the score. The below is an example of what it would look like in


Why integrate Intercom with Appcues?

Integrating Intercom with Appcues will help you see which users are interacting with which of your Appcues flows. 

What you'll need
  • An Intercom account and Appcues account, both fully installed on your app across the same pages and domains
  • Enable Intercom at your Integrations page:

Once Intercom and Appcues are integrated, you can view Appcues events under any user profile in Intercom. Just pull up a user profile and you'll see them on the right side:

If you click into the event, you can see details about the specific flow the user saw:


Why integrate Vero with Appcues?

Integrating Vero with Appcues will help you reach out to users depending on what they did in Appcues. For example, you can send an email two weeks later if a user skipped the onboarding flow.


Why integrate Woopra with Appcues?

With Woopra you can analyze and visualize the entire customer journey from first marketing touch all the way through immersive product usage, email and chat interactions etc. By integrating this with Appcues you can do things like send a congratulations email after a user finishes a checklist.

Salesforce (Two-way)

Why integrate Salesforce with Appcues?

The Appcues and Salesforce integration is a bi-directional, real-time connection. You can use this integration to help better target and personalize in-app experiences. Let the data flow! 

What you'll need to get started:

  • Appcues Growth Plan. Check out more about our pricing plans here!
  • A Salesforce Plan with API Access. Enterprise Edition, Unlimited Edition, Developer Edition, Performance Edition check out the plans here.
  • UUID Match. This integration requires identical UUIDs in two places:
    1. The Appcues installation: window.Appcues.identify("USER_ID")
    2. The Salesforce record: typical as a User ID or Salesforce ID field which must have type Text. If your user IDs are numeric, you can create a formula field with the string representation of your user ID. For example, if your user ID is stored in a numeric custom field called "Product User Id," you would create a formula field with the formula TEXT(Product_User_Id__c).
  • Single Record Mapping:  This integration currently supports mapping only one record, and the ones that most fit (partly because of the above requirement) are Lead or Contact records.
  • Appcues Events Broadcaster (Optional): Enable this add-on service if you want to send Click-to-track events to Salesforce

What information will be passed with this integration?

  • From Salesforce to Appcues
    • Triggers when the specified object (commonly a Lead or Contact) are created or updated. This will occur automatically as long as the property has been updated. If nothing has been updated in Salesforce, nothing will be pushed to Appcues.
    • Sends specified attributes to Appcues as profile attributes to be updated
    • If a user or attribute does not yet exist in Appcues, it will be created upon sync
  • From Appcues to Salesforce:
    • Triggers (via webhook) when an end user interacts with Appcues content (e.g. submits an NPS survey)
    • Optional: Sends "NPS Score" and "NPS Feedback" to Salesforce that update the specified object (e.g. Lead or Contact)
    • Optional: Sends Appcues events to Salesforce as Events that appear on the objects Activity view
    • Optional: Sends Click-to-track events to Salesforce as Events that appears on the objects Activity view. (Requires that your account is signed up for Appcues Events Broadcaster)
    • Appcues will not create new Leads or Contacts if one does not exist for the events it is trying to sync
Syncing data between Appcues and Salesforce depends on having a "USERID" attribute that's shared in both systems. This value is commonly stored as a custom field in Salesforce. You'll need to consult your Salesforce Admin for assistance.

How to set up the integration

Video Thumbnail

#wistia_chrome_68 #wistia_grid_75_wrapper .w-css-reset{font-size:14px;} #wistia_chrome_68 #wistia_grid_75_wrapper div.w-css-reset{box-sizing:inherit;box-shadow:none;color:inherit;display:block;float:none;font:inherit;font-family:inherit;font-style:normal;font-weight:normal;font-size:inherit;letter-spacing:0;line-height:inherit;margin:0;max-height:none;max-width:none;min-height:0;min-width:0;padding:0;position:static;text-decoration:none;text-transform:none;text-shadow:none;transition:none;word-wrap:normal;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;-webkit-font-smoothing:antialiased} #wistia_chrome_68 #wistia_grid_75_wrapper span.w-css-reset{box-sizing:inherit;box-shadow:none;color:inherit;display:block;float:none;font:inherit;font-family:inherit;font-style:normal;font-weight:normal;font-size:inherit;letter-spacing:0;line-height:inherit;margin:0;max-height:none;max-width:none;min-height:0;min-width:0;padding:0;position:static;text-decoration:none;text-transform:none;text-shadow:none;transition:none;word-wrap:normal;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;-webkit-font-smoothing:antialiased} #wistia_chrome_68 #wistia_grid_75_wrapper ul.w-css-reset{box-sizing:inherit;box-shadow:none;color:inherit;display:block;float:none;font:inherit;font-family:inherit;font-style:normal;font-weight:normal;font-size:inherit;letter-spacing:0;line-height:inherit;margin:0;max-height:none;max-width:none;min-height:0;min-width:0;padding:0;position:static;text-decoration:none;text-transform:none;text-shadow:none;transition:none;word-wrap:normal;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;-webkit-font-smoothing:antialiased} #wistia_chrome_68 #wistia_grid_75_wrapper li.w-css-reset{box-sizing:inherit;box-shadow:none;color:inherit;display:block;float:none;font:inherit;font-family:inherit;font-style:normal;font-weight:normal;font-size:inherit;letter-spacing:0;line-height:inherit;margin:0;max-height:none;max-width:none;min-height:0;min-width:0;padding:0;position:static;text-decoration:none;text-transform:none;text-shadow:none;transition:none;word-wrap:normal;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;-webkit-font-smoothing:antialiased} #wistia_chrome_68 #wistia_grid_75_wrapper label.w-css-reset{box-sizing:inherit;box-shadow:none;color:inherit;display:block;float:none;font:inherit;font-family:inherit;font-style:normal;font-weight:normal;font-size:inherit;letter-spacing:0;line-height:inherit;margin:0;max-height:none;max-width:none;min-height:0;min-width:0;padding:0;position:static;text-decoration:none;text-transform:none;text-shadow:none;transition:none;word-wrap:normal;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;-webkit-font-smoothing:antialiased} #wistia_chrome_68 #wistia_grid_75_wrapper button.w-css-reset{box-sizing:inherit;box-shadow:none;color:inherit;display:block;float:none;font:inherit;font-family:inherit;font-style:normal;font-weight:normal;font-size:inherit;letter-spacing:0;line-height:inherit;margin:0;max-height:none;max-width:none;min-height:0;min-width:0;padding:0;position:static;text-decoration:none;text-transform:none;text-shadow:none;transition:none;word-wrap:normal;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;-webkit-font-smoothing:antialiased} #wistia_chrome_68 #wistia_grid_75_wrapper img.w-css-reset{box-sizing:inherit;box-shadow:none;color:inherit;display:block;float:none;font:inherit;font-family:inherit;font-style:normal;font-weight:normal;font-size:inherit;letter-spacing:0;line-height:inherit;margin:0;max-height:none;max-width:none;min-height:0;min-width:0;padding:0;position:static;text-decoration:none;text-transform:none;text-shadow:none;transition:none;word-wrap:normal;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;-webkit-font-smoothing:antialiased} #wistia_chrome_68 #wistia_grid_75_wrapper a.w-css-reset{box-sizing:inherit;box-shadow:none;color:inherit;display:block;float:none;font:inherit;font-family:inherit;font-style:normal;font-weight:normal;font-size:inherit;letter-spacing:0;line-height:inherit;margin:0;max-height:none;max-width:none;min-height:0;min-width:0;padding:0;position:static;text-decoration:none;text-transform:none;text-shadow:none;transition:none;word-wrap:normal;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;-webkit-font-smoothing:antialiased} #wistia_chrome_68 #wistia_grid_75_wrapper svg.w-css-reset{box-sizing:inherit;box-shadow:none;color:inherit;display:block;float:none;font:inherit;font-family:inherit;font-style:normal;font-weight:normal;font-size:inherit;letter-spacing:0;line-height:inherit;margin:0;max-height:none;max-width:none;min-height:0;min-width:0;padding:0;position:static;text-decoration:none;text-transform:none;text-shadow:none;transition:none;word-wrap:normal;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;-webkit-font-smoothing:antialiased} #wistia_chrome_68 #wistia_grid_75_wrapper p.w-css-reset{box-sizing:inherit;box-shadow:none;color:inherit;display:block;float:none;font:inherit;font-family:inherit;font-style:normal;font-weight:normal;font-size:inherit;letter-spacing:0;line-height:inherit;margin:0;max-height:none;max-width:none;min-height:0;min-width:0;padding:0;position:static;text-decoration:none;text-transform:none;text-shadow:none;transition:none;word-wrap:normal;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;-webkit-font-smoothing:antialiased} #wistia_chrome_68 #wistia_grid_75_wrapper a.w-css-reset{border:0;} #wistia_chrome_68 #wistia_grid_75_wrapper h1.w-css-reset{box-sizing:inherit;box-shadow:none;color:inherit;display:block;float:none;font:inherit;font-family:inherit;font-style:normal;font-weight:normal;font-size:2em;letter-spacing:0;line-height:inherit;margin:0;max-height:none;max-width:none;min-height:0;min-width:0;padding:0;position:static;text-decoration:none;text-transform:none;text-shadow:none;transition:none;word-wrap:normal;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;-webkit-font-smoothing:antialiased} #wistia_chrome_68 #wistia_grid_75_wrapper h2.w-css-reset{box-sizing:inherit;box-shadow:none;color:inherit;display:block;float:none;font:inherit;font-family:inherit;font-style:normal;font-weight:normal;font-size:1.5em;letter-spacing:0;line-height:inherit;margin:0;max-height:none;max-width:none;min-height:0;min-width:0;padding:0;position:static;text-decoration:none;text-transform:none;text-shadow:none;transition:none;word-wrap:normal;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;-webkit-font-smoothing:antialiased} #wistia_chrome_68 #wistia_grid_75_wrapper h3.w-css-reset{box-sizing:inherit;box-shadow:none;color:inherit;display:block;float:none;font:inherit;font-family:inherit;font-style:normal;font-weight:normal;font-size:1.17em;letter-spacing:0;line-height:inherit;margin:0;max-height:none;max-width:none;min-height:0;min-width:0;padding:0;position:static;text-decoration:none;text-transform:none;text-shadow:none;transition:none;word-wrap:normal;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;-webkit-font-smoothing:antialiased} #wistia_chrome_68 #wistia_grid_75_wrapper p.w-css-reset{margin:1.4em 0;} #wistia_chrome_68 #wistia_grid_75_wrapper a.w-css-reset{display:inline;} #wistia_chrome_68 #wistia_grid_75_wrapper span.w-css-reset{display:inline;} #wistia_chrome_68 #wistia_grid_75_wrapper svg.w-css-reset{display:inline;} #wistia_chrome_68 #wistia_grid_75_wrapper ul.w-css-reset{box-sizing:inherit;box-shadow:none;color:inherit;display:block;float:none;font:inherit;font-family:inherit;font-style:normal;font-weight:normal;font-size:inherit;letter-spacing:0;line-height:inherit;margin:0;max-height:none;max-width:none;min-height:0;min-width:0;padding:0;position:static;text-decoration:none;text-transform:none;text-shadow:none;transition:none;word-wrap:normal;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;-webkit-font-smoothing:antialiased;list-style-type:none} #wistia_chrome_68 #wistia_grid_75_wrapper ol.w-css-reset{box-sizing:inherit;box-shadow:none;color:inherit;display:block;float:none;font:inherit;font-family:inherit;font-style:normal;font-weight:normal;font-size:inherit;letter-spacing:0;line-height:inherit;margin:0;max-height:none;max-width:none;min-height:0;min-width:0;padding:0;position:static;text-decoration:none;text-transform:none;text-shadow:none;transition:none;word-wrap:normal;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;-webkit-font-smoothing:antialiased;list-style-type:none} #wistia_chrome_68 #wistia_grid_75_wrapper li.w-css-reset{box-sizing:inherit;box-shadow:none;color:inherit;display:block;float:none;font:inherit;font-family:inherit;font-style:normal;font-weight:normal;font-size:inherit;letter-spacing:0;line-height:inherit;margin:0;max-height:none;max-width:none;min-height:0;min-width:0;padding:0;position:static;text-decoration:none;text-transform:none;text-shadow:none;transition:none;word-wrap:normal;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;-webkit-font-smoothing:antialiased;list-style-type:none} #wistia_chrome_68 #wistia_grid_75_wrapper ul:before.w-css-reset{display:none} #wistia_chrome_68 #wistia_grid_75_wrapper ol:before.w-css-reset{display:none} #wistia_chrome_68 #wistia_grid_75_wrapper li:before.w-css-reset{display:none} #wistia_chrome_68 #wistia_grid_75_wrapper ul:after.w-css-reset{display:none} #wistia_chrome_68 #wistia_grid_75_wrapper ol:after.w-css-reset{display:none} #wistia_chrome_68 #wistia_grid_75_wrapper li:after.w-css-reset{display:none} #wistia_chrome_68 #wistia_grid_75_wrapper label.w-css-reset{background-attachment:scroll;background-color:transparent;background-image:none;background-position:0 0;background-repeat:no-repeat;background-size:100% 100%;float:none;outline:none} #wistia_chrome_68 #wistia_grid_75_wrapper button.w-css-reset{background-attachment:scroll;background-color:transparent;background-image:none;background-position:0 0;background-repeat:no-repeat;background-size:100% 100%;border:0;border-radius:0;outline:none;position:static} #wistia_chrome_68 #wistia_grid_75_wrapper img.w-css-reset{border:0;display:inline-block;vertical-align:top;border-radius:0;outline:none;position:static} #wistia_chrome_68 #wistia_grid_75_wrapper .w-css-reset button::-moz-focus-inner{border: 0;} #wistia_chrome_68 #wistia_grid_75_wrapper .w-css-reset-tree {font-size:14px;} #wistia_chrome_68 #wistia_grid_75_wrapper .w-css-reset-tree div{box-sizing:inherit;box-shadow:none;color:inherit;display:block;float:none;font:inherit;font-family:inherit;font-style:normal;font-weight:normal;font-size:inherit;letter-spacing:0;line-height:inherit;margin:0;max-height:none;max-width:none;min-height:0;min-width:0;padding:0;position:static;text-decoration:none;text-transform:none;text-shadow:none;transition:none;word-wrap:normal;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;-webkit-font-smoothing:antialiased} #wistia_chrome_68 #wistia_grid_75_wrapper .w-css-reset-tree span{box-sizing:inherit;box-shadow:none;color:inherit;display:block;float:none;font:inherit;font-family:inherit;font-style:normal;font-weight:normal;font-size:inherit;letter-spacing:0;line-height:inherit;margin:0;max-height:none;max-width:none;min-height:0;min-width:0;padding:0;position:static;text-decoration:none;text-transform:none;text-shadow:none;transition:none;word-wrap:normal;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;-webkit-font-smoothing:antialiased} #wistia_chrome_68 #wistia_grid_75_wrapper .w-css-reset-tree ul{box-sizing:inherit;box-shadow:none;color:inherit;display:block;float:none;font:inherit;font-family:inherit;font-style:normal;font-weight:normal;font-size:inherit;letter-spacing:0;line-height:inherit;margin:0;max-height:none;max-width:none;min-height:0;min-width:0;padding:0;position:static;text-decoration:none;text-transform:none;text-shadow:none;transition:none;word-wrap:normal;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;-webkit-font-smoothing:antialiased} #wistia_chrome_68 #wistia_grid_75_wrapper .w-css-reset-tree li{box-sizing:inherit;box-shadow:none;color:inherit;display:block;float:none;font:inherit;font-family:inherit;font-style:normal;font-weight:normal;font-size:inherit;letter-spacing:0;line-height:inherit;margin:0;max-height:none;max-width:none;min-height:0;min-width:0;padding:0;position:static;text-decoration:none;text-transform:none;text-shadow:none;transition:none;word-wrap:normal;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;-webkit-font-smoothing:antialiased} #wistia_chrome_68 #wistia_grid_75_wrapper .w-css-reset-tree label{box-sizing:inherit;box-shadow:none;color:inherit;display:block;float:none;font:inherit;font-family:inherit;font-style:normal;font-weight:normal;font-size:inherit;letter-spacing:0;line-height:inherit;margin:0;max-height:none;max-width:none;min-height:0;min-width:0;padding:0;position:static;text-decoration:none;text-transform:none;text-shadow:none;transition:none;word-wrap:normal;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;-webkit-font-smoothing:antialiased} #wistia_chrome_68 #wistia_grid_75_wrapper .w-css-reset-tree button{box-sizing:inherit;box-shadow:none;color:inherit;display:block;float:none;font:inherit;font-family:inherit;font-style:normal;font-weight:normal;font-size:inherit;letter-spacing:0;line-height:inherit;margin:0;max-height:none;max-width:none;min-height:0;min-width:0;padding:0;position:static;text-decoration:none;text-transform:none;text-shadow:none;transition:none;word-wrap:normal;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;-webkit-font-smoothing:antialiased} #wistia_chrome_68 #wistia_grid_75_wrapper .w-css-reset-tree img{box-sizing:inherit;box-shadow:none;color:inherit;display:block;float:none;font:inherit;font-family:inherit;font-style:normal;font-weight:normal;font-size:inherit;letter-spacing:0;line-height:inherit;margin:0;max-height:none;max-width:none;min-height:0;min-width:0;padding:0;position:static;text-decoration:none;text-transform:none;text-shadow:none;transition:none;word-wrap:normal;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;-webkit-font-smoothing:antialiased} #wistia_chrome_68 #wistia_grid_75_wrapper .w-css-reset-tree a{box-sizing:inherit;box-shadow:none;color:inherit;display:block;float:none;font:inherit;font-family:inherit;font-style:normal;font-weight:normal;font-size:inherit;letter-spacing:0;line-height:inherit;margin:0;max-height:none;max-width:none;min-height:0;min-width:0;padding:0;position:static;text-decoration:none;text-transform:none;text-shadow:none;transition:none;word-wrap:normal;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;-webkit-font-smoothing:antialiased} #wistia_chrome_68 #wistia_grid_75_wrapper .w-css-reset-tree svg{box-sizing:inherit;box-shadow:none;color:inherit;display:block;float:none;font:inherit;font-family:inherit;font-style:normal;font-weight:normal;font-size:inherit;letter-spacing:0;line-height:inherit;margin:0;max-height:none;max-width:none;min-height:0;min-width:0;padding:0;position:static;text-decoration:none;text-transform:none;text-shadow:none;transition:none;word-wrap:normal;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;-webkit-font-smoothing:antialiased} #wistia_chrome_68 #wistia_grid_75_wrapper .w-css-reset-tree p{box-sizing:inherit;box-shadow:none;color:inherit;display:block;float:none;font:inherit;font-family:inherit;font-style:normal;font-weight:normal;font-size:inherit;letter-spacing:0;line-height:inherit;margin:0;max-height:none;max-width:none;min-height:0;min-width:0;padding:0;position:static;text-decoration:none;text-transform:none;text-shadow:none;transition:none;word-wrap:normal;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;-webkit-font-smoothing:antialiased} #wistia_chrome_68 #wistia_grid_75_wrapper .w-css-reset-tree a{border:0;} #wistia_chrome_68 #wistia_grid_75_wrapper .w-css-reset-tree h1{box-sizing:inherit;box-shadow:none;color:inherit;display:block;float:none;font:inherit;font-family:inherit;font-style:normal;font-weight:normal;font-size:2em;letter-spacing:0;line-height:inherit;margin:0;max-height:none;max-width:none;min-height:0;min-width:0;padding:0;position:static;text-decoration:none;text-transform:none;text-shadow:none;transition:none;word-wrap:normal;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;-webkit-font-smoothing:antialiased} #wistia_chrome_68 #wistia_grid_75_wrapper .w-css-reset-tree h2{box-sizing:inherit;box-shadow:none;color:inherit;display:block;float:none;font:inherit;font-family:inherit;font-style:normal;font-weight:normal;font-size:1.5em;letter-spacing:0;line-height:inherit;margin:0;max-height:none;max-width:none;min-height:0;min-width:0;padding:0;position:static;text-decoration:none;text-transform:none;text-shadow:none;transition:none;word-wrap:normal;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;-webkit-font-smoothing:antialiased} #wistia_chrome_68 #wistia_grid_75_wrapper .w-css-reset-tree h3{box-sizing:inherit;box-shadow:none;color:inherit;display:block;float:none;font:inherit;font-family:inherit;font-style:normal;font-weight:normal;font-size:1.17em;letter-spacing:0;line-height:inherit;margin:0;max-height:none;max-width:none;min-height:0;min-width:0;padding:0;position:static;text-decoration:none;text-transform:none;text-shadow:none;transition:none;word-wrap:normal;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;-webkit-font-smoothing:antialiased} #wistia_chrome_68 #wistia_grid_75_wrapper .w-css-reset-tree p{margin:1.4em 0;} #wistia_chrome_68 #wistia_grid_75_wrapper .w-css-reset-tree a{display:inline;} #wistia_chrome_68 #wistia_grid_75_wrapper .w-css-reset-tree span{display:inline;} #wistia_chrome_68 #wistia_grid_75_wrapper .w-css-reset-tree svg{display:inline;} #wistia_chrome_68 #wistia_grid_75_wrapper .w-css-reset-tree ul{box-sizing:inherit;box-shadow:none;color:inherit;display:block;float:none;font:inherit;font-family:inherit;font-style:normal;font-weight:normal;font-size:inherit;letter-spacing:0;line-height:inherit;margin:0;max-height:none;max-width:none;min-height:0;min-width:0;padding:0;position:static;text-decoration:none;text-transform:none;text-shadow:none;transition:none;word-wrap:normal;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;-webkit-font-smoothing:antialiased;list-style-type:none} #wistia_chrome_68 #wistia_grid_75_wrapper .w-css-reset-tree ol{box-sizing:inherit;box-shadow:none;color:inherit;display:block;float:none;font:inherit;font-family:inherit;font-style:normal;font-weight:normal;font-size:inherit;letter-spacing:0;line-height:inherit;margin:0;max-height:none;max-width:none;min-height:0;min-width:0;padding:0;position:static;text-decoration:none;text-transform:none;text-shadow:none;transition:none;word-wrap:normal;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;-webkit-font-smoothing:antialiased;list-style-type:none} #wistia_chrome_68 #wistia_grid_75_wrapper .w-css-reset-tree li{box-sizing:inherit;box-shadow:none;color:inherit;display:block;float:none;font:inherit;font-family:inherit;font-style:normal;font-weight:normal;font-size:inherit;letter-spacing:0;line-height:inherit;margin:0;max-height:none;max-width:none;min-height:0;min-width:0;padding:0;position:static;text-decoration:none;text-transform:none;text-shadow:none;transition:none;word-wrap:normal;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;-webkit-font-smoothing:antialiased;list-style-type:none} #wistia_chrome_68 #wistia_grid_75_wrapper .w-css-reset-tree ul:before{display:none} #wistia_chrome_68 #wistia_grid_75_wrapper .w-css-reset-tree ol:before{display:none} #wistia_chrome_68 #wistia_grid_75_wrapper .w-css-reset-tree li:before{display:none} #wistia_chrome_68 #wistia_grid_75_wrapper .w-css-reset-tree ul:after{display:none} #wistia_chrome_68 #wistia_grid_75_wrapper .w-css-reset-tree ol:after{display:none} #wistia_chrome_68 #wistia_grid_75_wrapper .w-css-reset-tree li:after{display:none} #wistia_chrome_68 #wistia_grid_75_wrapper .w-css-reset-tree label{background-attachment:scroll;background-color:transparent;background-image:none;background-position:0 0;background-repeat:no-repeat;background-size:100% 100%;float:none;outline:none} #wistia_chrome_68 #wistia_grid_75_wrapper .w-css-reset-tree button{background-attachment:scroll;background-color:transparent;background-image:none;background-position:0 0;background-repeat:no-repeat;background-size:100% 100%;border:0;border-radius:0;outline:none;position:static} #wistia_chrome_68 #wistia_grid_75_wrapper .w-css-reset-tree img{border:0;display:inline-block;vertical-align:top;border-radius:0;outline:none;position:static} #wistia_chrome_68 #wistia_grid_75_wrapper .w-css-reset-tree button::-moz-focus-inner{border: 0;} #wistia_chrome_68 #wistia_grid_75_wrapper .w-css-reset-max-width-none-important{max-width:none!important} #wistia_chrome_68 #wistia_grid_75_wrapper .w-css-reset-button-important{border-radius:0!important;color:#fff!important;}

#wistia_grid_75_wrapper{-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;font-family:Arial,sans-serif;font-size:14px;height:100%;position:relative;text-align:left;width:100%;} #wistia_grid_75_wrapper *{-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;} #wistia_grid_75_above{position:relative;} #wistia_grid_75_main{display:block;height:100%;position:relative;} #wistia_grid_75_behind{height:100%;left:0;position:absolute;top:0;width:100%;} #wistia_grid_75_center{height:100%;overflow:hidden;position:relative;width:100%;} #wistia_grid_75_front{display:none;height:100%;left:0;position:absolute;top:0;width:100%;} #wistia_grid_75_top_inside{position:absolute;left:0;top:0;width:100%;} #wistia_grid_75_top{width:100%;position:absolute;bottom:0;left:0;} #wistia_grid_75_bottom_inside{position:absolute;left:0;bottom:0;width:100%;} #wistia_grid_75_bottom{width:100%;position:absolute;top:0;left:0;} #wistia_grid_75_left_inside{height:100%;position:absolute;left:0;top:0;} #wistia_grid_75_left{height:100%;position:absolute;right:0;top:0;} #wistia_grid_75_right_inside{height:100%;right:0;position:absolute;top:0;} #wistia_grid_75_right{height:100%;left:0;position:absolute;top:0;} #wistia_grid_75_below{position:relative;}

  1. From the Integrations page within Appcues, click the Salesforce integration card.
  2. In the popup that appears, click "Activate". This will trigger a separate popup window.
  3. Click the dropdown to authenticate your Salesforce account. This will walk you through a standard (OAuth) login flow.
  4. Give your authenticated account a name (or use the default name provided).
  5. Choose an instance type (either "Production" or "Sandbox").
  6. Select a Salesforce Record Type to sync.
  7. Select which field in Salesforce will correspond to the userId in Appcues. {It is critical these match exactly. Unfortunately Appcues will not know if these match, so you may need to get with your Salesforce Admin to confirm}.
  8. Map fields to send from Salesforce to Appcues when a record is created or updated. You can free-form type your own new fields here and when done, choose the "set value to:" option for that new property to save.
  9. Map the NPS fields to send from Appcues to Salesforce. This will update those fields in Salesforce when users go through an NPS survey and submit feedback.
  10. Confirm the configuration and close the popup.
  11. The integration should now appear activated in the list of Integrations. 
  12. You can go back and modify anytime.

Here's the link to the short video that shows the steps to set up the SFDC integration written above.

SFDC Permissions

Permission Fields Uses Object Level Permissions
Lead or Contact (Object) Any fields you'd like to sync with Appcues Used to sync fields between the two systems. 

Note: This can be any object type, including a Custom object. Only the synced record needs to be accessible.

Create, Edit, Read

Event (Object) Subject, Comment Used to record Appcues events such as "flow completed". Create, Edit, Read
Customize Application (Profile) N/A Sets up workflow rules and actions that send data from Salesforce to Appcues.

SFDC Events and Activity Data 

The Salesforce integration sends a subset of events to Salesforce. For the full list of Appcues events, see our Appcues Events Reference doc.
These will be sent automatically as long as the Appcues > Salesforce integration is complete and the USERID attributes match.

Events that update events:

Event Name Display Name Attribute Name Attribute Type
appcues:nps_score Latest NPS Score score number
appcues:nps_feedback Latest NPS Feedback feedback string

Events that add events:

Event name Subject value Comment value
appcues:nps_score Appcues NPS Score Submitted - {{ score }} {{ score }} NPS score.

Submission location: {{ currentPageUrl }} ({{ currentPageTitle }}
appcues:nps_feedback Appcues NPS Feedback Submitted {{ feedback }}

Submission location: {{ currentPageUrl }} ({{ currentPageTitle }}
appcues:flow_completed Appcues Flow Completed - {{ flowName }} User completed your Appcues flow titled “{{ flowName }}”.
appcues:checklist_item_completed Appcues Checklist Item #{{ itemIndex + 1 }} Completed - {{ checklistName }} User has completed an item titled, “{{ itemIndex }}”. This is part of the “{{ itemIndex }}” checklist.
appcues:checklist_completed Appcues Checklist Fully Completed - {{ checklistName }} User has completed all items in the “{{ checklistName }}” checklist.

HubSpot (One-way) (Deprecated)

The 1-way HubSpot integration is deprecated. The information below is only for those accounts that still have access to it. Anyone wishing to integrate w/ HubSpot must use our Two-Way HubSpot Integration.

The Appcues to HubSpot integration is a one-way integration, that creates timeline events in the HubSpot CRM. These events occur every time a user completes or skips an Appcues step action. These HubSpot events can then be used in HubSpot to trigger campaigns, sort users, and other actions. 

Why integrate HubSpot with Appcues?

Integrating HubSpot with Appcues allows you to target marketing campaigns based on how users interact with Appcues flows. It can also help your sales team identify how individual contacts interact with flows.

What you'll need

  • A HubSpot account with CRM (any paid plan)
  • Your HubSpot login information
  • To be passing an email address/HubSpot Contact ID to Appcues as part of your installation
    • Email Requirement: In order for this integration to work, you must be passing us an email property as part of your Appcues.identify() call. The email does not need to be your unique identifier within Appcues but HubSpot uses email as a contact property's unique identifier and thus the integration will not work with a user ID alone. Appcues will look for an email address in the following user property fields:
      • Email, email, EMAIL
      • Name, name, NAME
      • userEmail, useremail, USEREMAIL
      • User_Email, user_email, USER_EMAIL
    • Any other email property will not be accepted and the event will fail to sync to HubSpot
    • If you decide to use the HubSpot Contact ID, this will override the email property if any of these properties are passed:
      • hubSpotContactVid
      • hubSpotId
      • hubSpotObjectId

Setting up the Integration

To set up the integration, you first have to authorize the Appcues integration to access HubSpot on our integrations page:

After selecting the HubSpot integration, you’ll be redirected to HubSpot, which will allow you to authorize the Appcues integration within your HubSpot account. 

Appcues events will then automatically be sync'd to your HubSpot account. This sync will then occur every night at 3am US Eastern Time. Once these events begin to pass, you will see these step events on a contact's timeline and for use in HubSpot Workflows.

Note: *If you've turned on this integration before 3/20/18* and the email we are sending is not already in your HubSpot contacts database, they will be added as a new contact. Since HubSpot charges based on number of contacts, we can turn this off for you on our end. Reach us at for any assistance with this matter.

What you're sending

The only data that we send to HubSpot is the data from your users interactions with the Appcues flows. You can read more about these types of events here. We do not send over any of the information you've passed to Appcues in your identify call.

The only other option available for use in the Appcues-HubSpot integration is the ability to only send events for users who are already in the HubSpot CRM or filter any events for users who aren’t in said CRM. This is disabled by default in HubSpot, but can be turned on manually.

What we send

Through the Appcues-HubSpot integration, we send skipped or completed event data for Appcues Steps only. Because of this, instead of targeting by “Completed Flow”, you’d want to target by the user completing the last step of a particular flow.

This also means that for any flows with multiple step groups, we will send an event to HubSpot for each step the user reaches.

In HubSpot, the events sent from Appcues will look like:
  • Step completed — user reaches the end of a modal, hotspot, etc.
  • Step skipped — user skips this step in the flow

We do not send over any of the information you've passed to Appcues in your identify call.

How to use this integration

Email Campaigns

You can trigger email users who interact with Appcues in certain ways. For example, if you know that people who skip out on your onboarding flow are less likely to purchase your product, you might send those users an email to personally onboard them with a 1:1 demo. 

Contact level

You can see how your Hubspot contacts interact with Appcues flows on an individual basis by viewing their contact page in HubSpot. 

If for example, you notice that prospects are viewing the same flows multiple times, you may want to reach out for personalized help or rethink how the information is presented in the flow.

*by default integration events may be filtered out of the customer feed. If Appcues events are not shown the filters may need to be adjusted.

HubSpot (Two-way)

Click here


Please note that installing through Segment and integrating with Segment are two separate actions. To install and integrate with Segment start with your installation, then enable this integration   

If you use Segment throughout your platform, we highly recommend installing Appcues via your Segment integration. Installing through Segment will sync your Segment information (including user properties and events you collect from your own platform) to Appcues.  Click here to learn how to install Appcues via Segment.

After installing through Segment, you'll want to complete this integration for a two-way effect where Appcues sends data and events back into Segment. 

Why integrate with Segment?

Segment is a powerful tool that collects your user data and pushes it into other specialized tools so your team and company can make the most of the information you all share. Integrating Appcues with Segment adds your Appcues data (which users have/haven't seen, completed, and interacted with your flows) into the mix. This integration can also send Appcues data into other tools you've integrated with, like Mixpanel, Heap, and Google Analytics. 

Appcues events will automatically be synced to your Segment account, then sent off to your other Segment integrations. The best place to see this information is in the Segment Debugger or in your Schema, the latter of which looks something like this:

What you'll need
  • A Segment account and Appcues account, both fully installed on your app across the same pages and domains
  • For the Segment browser integration, you must have installed the Segment Javascript SDK

How to use this integration

First install Appcues via Segment here. Clicking Install will redirect you to Segment where you can choose what data you would like to send into Appcues. This is the information you'll use to target flows to your users.

To send Appcues data back to Segment, go to your Appcues Integrations page, hover over the Segment integration, and select Activate.

To send Appcues data into other tools that (1) receive Appcues data and (2) that you use with Segment ( see a list here), enable these integrations directly in Segment.

Deleting the Segment integration

To disable your Segment integration, return to the account integrations page. Hover over the Segment integration and select Deactivate. 

Then in Segment, visit your Settings for Appcues and Delete this source. You can also remove the API keys.

NOTE: The client side of Segment does engage directly with Appcues. Turning on the installation through Segment tells Segment to load the Appcues library. If you were to look, for instance, at network calls after Appcues has been installed, you'll see both XHR calls to Segment  and websocket messages sent directly to Appcues. That means you'll also be able to call any methods from the Appcues SDK from the console.

Google Tag Manager

Appcues offers a handful of one-click integrations to your favorite services. Let's dig in to how to use Appcues' Google Tag Manager (GTM) integration. This is a one-way browser integration where Appcues sends data to Google Tag Manager in the browser.

Note: This document covers how Appcues  sends data to GTM via the dataLayer API. Use of this feature does not require that you install Appcues via GTM. We have separate instructions on how to install Appcues using Google Tag Manager.


  • A Google Tag Manager account.
  • You've already installed the Google Tag Manager Javascript SDK in your application.

Activating the integration

You can activate this integration by going to the  Appcues Integrations page and clicking "Activate" under Google Tag Manager.

What does it look like?

Appcues events will automatically be sent to Google Tag Manager when someone interacts with your Appcues flows. Google has  a great example of how you could use this to trigger other tags, events and more within the Google Tag Manager interface.

Appcues sends the following data to the GTM dataLayer:
  • event — A description of the action taken by the user (e.g. "Flow Skipped (Appcues)"). See our list of analytics events for more information.
  • appcues_event_id — A shortened, machine-friendly version of the event (e.g. "flow_skipped").
  • appcues_flow_id — The ID of the flow the user interacted with.
  • appcues_flow_name — The name of the flow the user interacted with.


Are you running product analytics on FullStory? With our integration, you can send Appcues events to FullStory right in the browser, just by adding a bit of javascript to your product. 

Our integration with FullStory is added manually, with just a bit of javascript. We wrote it for you, here :) 

<script type="text/javascript">
    Appcues.on('all', function (eventId, eventObj) {  
        FS.event(`[Appcues] ${}`, eventObj)

All you need to activate this integration is to load this script after both the Appcues and FullStory scripts have been loaded. After that, all events from Appcues will be sent to FullStory client-side. 

Appcues events appear on a general level, such as  Flow Completed, Flow Started, Step Skipped, etc, and you can view further details like event properties by expanding individual events.

Did this answer your question? Thanks for the feedback There was a problem submitting your feedback. Please try again later.