> ## Documentation Index
> Fetch the complete documentation index at: https://docs.hightouch.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Appcues

> Push user behavior data from your warehouse into Appcues

## Setup

After selecting Appcues from our destinations catalog, you will be required to enter your Appcues *Account ID* (found in *Appcues* > *Settings* > [*Account*](https://studio.appcues.com/settings/account)) and *API Key / API Secret* (found in *Appcues* > *Settings* > [*API Keys*](https://studio.appcues.com/settings/keys)).

![](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/destinations/destination-appcues-setup.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=932b706d386c217e13c242ddcb2c3711)

Hightouch supports syncing both `Objects` and `Events` to Appcues.

## Syncing objects

Hightouch supports syncing to the following Appcues objects:

* `Users`

### Sync modes

Hightouch supports the following sync modes:

* **Upsert** - pushes new `User` objects to Appcues and updates properties that change in your warehouse.

### Record matching

`User` records can be matched from your source to your Appcues workspace by User ID (`user_id`), which is a unique identifier
in Appcues for each `User`.

![](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/destinations/destination-appcues-idfieldmapping.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=8a4d2d5fd60c5a9d9ff2ebd8f807be15)

### Field mapping

You may also sync columns from your source to Appcues's `User` properties. Appcues doesn't provide information on properties  set for `User` objects,
so you will need to type the exact name of the property you would like to map to in Appcues. These property names must be spelled correctly and are case-sensitive.

![](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/destinations/destination-appcues-fieldmappings.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=83394dde87c5a1ac881c67c9940c7593)

## Sending events to Appcues

The Appcues integration also allows you to send events to Appcues with custom attributes.

> [!WARNING]
>
> To ensure syncs send each event, your event model must use a truly unique [primary key](https://docs.hightouch.com/getting-started/concepts.md#unique-primary-key-requirement). See the [events syncs](https://docs.hightouch.com/syncs/types-and-modes.md#event-syncs) documentation for more information.

The three required elements of any Appcues event are the *Event Name* (which can be a single string used to name all events, or pulled from your warehouse per event), a *Timestamp* (in ISO 1806 format, or a Unix timestamp in **milliseconds**), and a **User ID** (the unique ID of the user corresponding to the event).

![](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/destinations/destination-appcues-events.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=c0f4da77200600d3fec790d634ab986d)

You can also map properties that will become event `attributes` in Appcues.

## Tips and troubleshooting

To see the exact API requests and responses from each sync run, use the [live debugger](https://docs.hightouch.com/syncs/debugger.md). To get notified by Slack, PagerDuty, SMS, or email when a sync fails, set up [sync alerts](https://docs.hightouch.com/syncs/alerting.md). If you run into an issue this page doesn't cover, [contact support](#pylon-chat).
