Appcues is a product experience platform for building in-app onboarding, guidance, and analytics without engineering effort. The Appcues Public API (V2) exposes programmatic access to flows, checklists, banners, launchpads, pins, tags, mobile experiences, and segments — enabling integrations to read experience metadata, manage segments and segment membership, publish or unpublish experiences, and track user events from external systems.
Power end-to-end data operations for your Appcues API with Nexla. Our bi-directional Appcues connector is purpose-built for Appcues, making it simple to ingest data, sync it across systems, and deliver it anywhere — all with no coding required. Nexla turns API-sourced data into ready-to-use, reusable data products and makes it easy to send data to Appcues or any other destination. With comprehensive monitoring, lineage tracking, and access controls, Nexla keeps your Appcues workflows fast, secure, and fully governed.
Features
Type: API
SourceDestination
Seamless API Integration: Connect to any endpoint as source or destination without coding, with automatic data product creation
Visual Composition & Chaining: Build complex integrations using visual templates, chain API calls, and compose workflows with data validation and filtering
API Proxy: Expose curated slices of your data securely with a secure and customizable API proxy that validates and transforms data on the fly
Request optimization with intelligent batching, retry, and caching to minimize API calls and costs
The Appcues Public API (V2) uses HTTP Basic Authentication. Every request must include an API key and API secret pair issued from the Appcues Studio, along with your Appcues account ID embedded in the request URL. Gather all three values before creating the credential in Nexla.
Your Appcues account ID is a numeric identifier that scopes every API call to your organization's data. It is shown in your Appcues Studio account settings.
Select the Account tab. Your numeric Account ID is displayed at the top of this page.
Copy the Account ID value and store it for use when configuring the credential in Nexla.
The account ID also appears in the Appcues Studio URL after you sign in (for example, studio.appcues.com/accounts/12345/...). For complete reference, see the Appcues Public API documentation.
Navigate to Settings > Integrations > API Keys. This page lists any existing keys and provides a button to create a new one.
Click Create new key to open the key creation dialog.
Enter a descriptive name for the key in the Name field (for example, Nexla integration). The name helps you identify which integration the key is associated with when reviewing the keys list later.
Select the desired permission level for the key:
Publisher: Grants read access plus the ability to publish or unpublish experiences (flows, checklists, banners, launchpads, pins, mobile experiences). Choose this level for integrations that manage experience lifecycle.
Admin: Grants full access to all V2 API endpoints, including segment management and user event tracking. Choose this level when the integration must create or update segments, add users to segments, or write user events.
Click Create to generate the key. Appcues displays both the API Key and the API Secret in a confirmation dialog.
Important
The API Secret is displayed only once at creation. Copy both the API Key and the API Secret immediately and store them in a secure secret manager — Appcues does not show the secret again after you close the dialog. If the secret is lost, you must delete the key and create a new one.
Confirm that the new key appears in the API Keys list at the expected permission level.
The legacy v1 Appcues API key (used by the Appcues SDK and v1 activity tracking) is not interchangeable with the V2 key/secret pair. Always use a V2 key/secret created from the API Keys page for this connector.
After selecting the data source/destination type, click the Add Credential tile to open the Add New Credential overlay.
Enter a name for the credential in the Credential Name field and a short, meaningful description in the Credential Description field.
Enter the API Key value generated from Settings > Integrations > API Keys in Appcues Studio into the Username Or API Key field. This value is the public portion of the key pair and is sent as the HTTP Basic Auth username on every request.
Enter the matching API Secret value (shown only once at key creation) into the Password field. Nexla stores this value as a secret and uses it as the HTTP Basic Auth password on every request.
If the API secret has been lost, return to Settings > Integrations > API Keys in Appcues Studio, delete the existing key, and create a new key/secret pair. The previous secret cannot be recovered.
Enter your numeric Appcues Account ID into the Account ID field. This value is read from Settings > Account in Appcues Studio and is interpolated into every Appcues API request URL (for example, https://api.appcues.com/v2/accounts/{account_id}/flows).
Nexla validates this credential by issuing a GET request to https://api.appcues.com/v2/accounts/{account_id}/launchpads with the supplied key and secret. A successful response confirms that all three values are correct and that the key has at least read access.
Click the Save button at the bottom of the overlay. The newly added credential will now appear in a tile on the Authenticate screen during data source/destination creation.
To create a new data flow, navigate to the Integrate section, and click the New Data Flow button. Select the Appcues connector tile, then select the credential that will be used to connect to the Appcues account, and click Next; or, create a new Appcues credential for use in this flow.
Nexla provides pre-built templates that can be used to rapidly configure data sources to ingest data from common Appcues endpoints. Select the endpoint from which this source will fetch data from the Endpoint pulldown menu. Available endpoint templates are listed in the expandable boxes below.
List Flows
This endpoint returns every web flow configured in the Appcues account, including metadata such as the flow name, status, segment targeting, and version history. Use it to sync your flow catalog into a warehouse, audit which flows are live, or feed downstream reporting.
No configuration is required for this endpoint beyond selecting it. All flows on the account are returned automatically as a top-level JSON array.
Flow IDs returned by this endpoint can be passed to the Get Flow Details endpoint to retrieve the full configuration, or to the Publish Flow / Unpublish Flow destination endpoints to change flow status.
This endpoint retrieves the full record for a single flow by ID, including its steps, targeting rules, and publish state. Use it to enrich an existing dataset of flow IDs with the latest configuration details.
Enter the flow ID in the Flow ID field. This field is required. Flow IDs can be obtained from the List Flows endpoint or from upstream Nexla data flows.
This endpoint returns a single flow object, not an array. The path to data is set to $.data, which maps the flow payload to a single Nexla record.
List Checklists
This endpoint returns every checklist configured in the Appcues account, along with metadata such as name, status, and segment targeting. Use it to sync your checklist catalog or feed downstream reporting on onboarding completion.
No configuration is required for this endpoint beyond selecting it. All checklists on the account are returned automatically.
Checklist IDs returned by this endpoint can be passed to Get Checklist Details, Publish Checklist, or Unpublish Checklist.
Get Checklist Details
This endpoint retrieves detailed configuration for a single checklist by ID — including each step, segment targeting, and publish state.
Enter the checklist ID in the Checklist ID field. This field is required. Checklist IDs can be obtained from the List Checklists endpoint.
The path to data for this endpoint is $.data, which maps the checklist payload to a single Nexla record.
List Banners
This endpoint returns every banner configured in the Appcues account. Banners are slim notification bars used for announcements, calls to action, or system messages. Use it to keep a downstream catalog of banners synced or to audit which banners are live.
No configuration is required for this endpoint beyond selecting it. All banners on the account are returned automatically as a top-level JSON array.
This endpoint returns every launchpad configured in the Appcues account. Launchpads are in-app widgets that aggregate flows, checklists, and resources for end users. Use it to sync your launchpad catalog into a warehouse or downstream reporting.
No configuration is required for this endpoint beyond selecting it. All launchpads on the account are returned automatically.
Launchpad IDs returned by this endpoint can be passed to Get Launchpad Details for the full configuration.
Get Launchpad Details
This endpoint retrieves detailed configuration for a single launchpad by ID, including its items, targeting rules, and publish state.
Enter the launchpad ID in the Launchpad ID field. This field is required. Launchpad IDs can be obtained from the List Launchpads endpoint.
This endpoint returns a single launchpad object. The path to data is set to the response root ($), so the launchpad payload is treated as a single Nexla record.
List Pins
This endpoint returns every pin configured in the Appcues account. Pins are persistent in-app indicators (tooltips, hotspots) attached to specific UI elements. Use it to audit pin coverage or sync pin metadata into downstream reporting.
No configuration is required for this endpoint beyond selecting it. All pins on the account are returned automatically.
List Tags
This endpoint returns every tag defined in the Appcues account. Tags are used to organize and categorize Appcues experiences (flows, checklists, banners, etc.) and can be referenced when filtering downstream reporting.
No configuration is required for this endpoint beyond selecting it. All tags on the account are returned automatically.
List Mobile Experiences
This endpoint returns a paginated list of mobile experiences in the Appcues account. Mobile experiences are in-app messages, surveys, and flows shown in your iOS and Android apps. Use it to sync your mobile experience catalog or feed reporting on mobile in-app messaging.
No configuration is required for this endpoint beyond selecting it. The template requests pages of 50 records and automatically advances the offset parameter until Appcues returns an empty page.
Mobile experience IDs returned by this endpoint can be passed to Get Mobile Experience Details for the full configuration.
This is the only Appcues source endpoint that uses offset-based pagination — the others return a single page of data. For details, see the List mobile experiences reference.
Get Mobile Experience Details
This endpoint retrieves detailed configuration for a single mobile experience by ID, including its content, targeting, and publish state.
Enter the mobile experience ID in the Mobile Experience ID field. This field is required. Mobile experience IDs can be obtained from the List Mobile Experiences endpoint.
List Segments
This endpoint returns every segment configured in the Appcues account. Segments are rule-based or list-based audiences used to target Appcues experiences. Use it to sync your segment catalog into a warehouse, audit segment usage, or feed downstream audience reporting.
No configuration is required for this endpoint beyond selecting it. All segments on the account are returned automatically.
Segment IDs returned by this endpoint can be passed to Get Segment Details, Add User IDs to Segment, or Update Segment Details.
This endpoint retrieves detailed configuration for a single segment by ID, including its targeting rules (for rule-based segments) or membership (for list-based segments).
Enter the segment ID in the Segment ID field. This field is required. Segment IDs can be obtained from the List Segments endpoint.
The path to data is set to the response root ($), so the segment payload is treated as a single Nexla record.
Publish Checklist
This endpoint publishes a checklist, activating it for end users. It is exposed as a source-style template because the underlying call requires no request body — the checklist ID is passed in the URL and the API response (the published checklist record) is returned as the data payload.
Enter the checklist ID in the Checklist ID field. This field is required. Checklist IDs can be obtained from the List Checklists endpoint.
The endpoint issues a POST to https://api.appcues.com/v2/accounts/{'{account_id}'}/checklists/{'{checklist_id}'}/publish. The response payload (under $.data) is treated as the Nexla record so the publish action and its result can be captured in the same flow.
Publishing a checklist makes it immediately visible to users matching its segment targeting. For complete details, see the Publish checklist reference.
Unpublish Checklist
This endpoint unpublishes a checklist, hiding it from end users without deleting its configuration. It is exposed as a source-style template because the underlying call requires no request body — the checklist ID is passed in the URL and the API response is returned as the data payload.
Enter the checklist ID in the Checklist ID field. This field is required. Checklist IDs can be obtained from the List Checklists endpoint.
The endpoint issues a POST to https://api.appcues.com/v2/accounts/{'{account_id}'}/checklists/{'{checklist_id}'}/unpublish. The response payload (under $.data) is treated as the Nexla record.
Unpublishing a checklist preserves the configuration in Appcues, so it can be republished later with Publish Checklist.
Once the selected endpoint template has been configured, click the Test button to the right of the endpoint selection menu to retrieve a sample of the data that will be fetched. Sample data will be displayed in the Endpoint Test Result panel on the right, allowing you to verify that the source is configured correctly before saving.
Appcues data sources can also be manually configured to ingest data from any valid Appcues Public API (V2) endpoint, including endpoints not covered by the pre-built templates, region-specific hosts such as api.eu.appcues.com or api.appcues.net, or chained lookup-driven calls — lookup-based macros are the recommended way to drive per-record calls such as Get Flow Details, Get Checklist Details, or Get Segment Details from a dataset of resource IDs returned by a list endpoint. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, endpoint URL, date/time and lookup macros, path to data, metadata, and request headers.
All Appcues V2 API URLs follow the pattern https://api.appcues.com/v2/accounts/{account_id}/{resource} (for example, https://api.appcues.com/v2/accounts/12345/flows). List endpoints such as /banners, /checklists, /flows, /launchpads, /pins, /segments, and /tags return a top-level JSON array, so the path to data is $[*]. The /mobile list endpoint returns records under $.data[*] and includes pagination details in a meta object that can be preserved as record metadata with the path $.meta. Single-resource endpoints such as /flows/{id} and /checklists/{id} return the record under $.data, while /launchpads/{id} and /segments/{id} return the record at the response root ($).
The HTTP Basic Authorization header is added automatically based on your Appcues credential and does not need to be included in the request headers.
Once all of the relevant settings have been configured, click the Create button in the upper right corner of the screen to save and create the new Appcues data source. Nexla will now begin ingesting data from the configured endpoint and will organize any data that it finds into one or more Nexsets.
Click the + icon on the Nexset that will be sent to the Appcues destination, and select the Send to Destination option from the menu. Select the Appcues connector from the list of available destination connectors, then select the credential that will be used to connect to the Appcues account, and click Next; or, create a new Appcues credential for use in this flow.
Nexla provides pre-built templates that can be used to rapidly configure destinations to send data to common Appcues endpoints. Select the endpoint to which data will be sent from the Endpoint pulldown menu. Then, click on the template in the list below to expand it, and follow the instructions to configure additional endpoint settings.
Create Segment
This endpoint creates a new segment in the Appcues account. Use it to programmatically seed segments from upstream audience definitions — for example, when a CRM defines a new customer cohort that should also exist in Appcues for experience targeting.
The full upstream record is sent as the JSON body of the POST /v2/accounts/{'{account_id}'}/segments call. At a minimum, each record must include a name for the new segment and a conditions object (for rule-based segments) or a list-based configuration.
Use the Nexla transform layer to shape the upstream record into the body schema expected by Appcues.
Newly created segments are immediately available for targeting flows, checklists, banners, and other Appcues experiences. For the complete request body schema, see the Create segment using the Public API guide.
Update Segment Details
This endpoint updates the configuration of an existing segment using PATCH semantics — only the fields included in the payload are modified, and omitted fields are left untouched.
Enter the segment ID in the Segment ID field. This field is required and is interpolated into the URL of every call.
The body of each PATCH call is the upstream record. Include only the fields that should be changed — for example, an updated name or a revised conditions block.
Segment IDs can be obtained from the List Segments source endpoint. Use the Nexla transform layer to drop attributes that should not be sent to Appcues.
Add User IDs to Segment
This endpoint adds one or more user IDs to a list-based segment. Use it to push membership changes from an external system of record into Appcues — for example, when a new cohort qualifies for a guided onboarding experience.
Enter the target segment ID in the Segment ID field. This field is required and must reference a list-based segment (rule-based segments derive membership automatically from their conditions).
Each upstream record's JSON body is sent to POST /v2/accounts/{'{account_id}'}/segments/{'{segment_id}'}/add_user_ids. The body must include a user_ids array of strings — these values must match the user IDs Appcues sees from your Appcues.identify() calls in your SDK.
Ensure the user IDs you send exactly match the identifiers Appcues knows for those users — segment membership is keyed off the same userId you supply via the Appcues SDK. For complete details, see the Appcues API V2 reference.
Publish Flow
This endpoint publishes a flow, activating it for end users that match its segment targeting. Use it to automate the rollout of experiences from your CI/CD or content-management pipeline.
Enter the flow ID in the Flow ID field. This field is required and is interpolated into the URL of every call.
No request body is required for this endpoint — the upstream record drives only the URL substitution.
Flow IDs can be obtained from the List Flows source endpoint. Publishing a flow makes it immediately eligible to display to qualifying users. For details, see the Publish flow reference.
Unpublish Flow
This endpoint unpublishes a flow, hiding it from end users without deleting its configuration. Use it to temporarily disable experiences during incidents, maintenance windows, or A/B test rotations.
Enter the flow ID in the Flow ID field. This field is required and is interpolated into the URL of every call.
No request body is required for this endpoint — the upstream record drives only the URL substitution.
Unpublishing preserves the flow configuration in Appcues, so it can be republished later with Publish Flow. For details, see the Unpublish flow reference.
Track a User Event
This endpoint records a user-level event in Appcues from a backend system. Use it to feed server-side events (purchases, account upgrades, support interactions) into Appcues so they can be referenced in segment conditions or as flow triggers.
Enter the user ID in the User ID field. This value should match the userId Appcues knows for the user via your Appcues.identify() SDK call. The field is optional in the template but is required by Appcues at runtime — provide it for every record.
Each upstream record's JSON body is sent to POST /v2/accounts/{'{account_id}'}/users/{'{user_id}'}/events. The body must include the event payload (event name, timestamp, and any custom event properties).
Use this endpoint for server-side events that cannot be captured by the client-side Appcues SDK. Events tracked here are eligible for use in segment conditions and as flow triggers after a short ingestion delay.
Appcues destinations can also be manually configured to send data to any valid Appcues Public API (V2) endpoint, including custom URL patterns, region-specific hosts (such as api.eu.appcues.com), and any new endpoints added to the Appcues API. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, data format, endpoint URL, request headers, attribute exclusions, record batching, and response webhooks.
The Appcues V2 API expects application/json for all write endpoints, so JSON is the appropriate content format for every Appcues destination. All Appcues V2 API URLs follow the pattern https://api.appcues.com/v2/accounts/{account_id}/{resource} (for example, https://api.appcues.com/v2/accounts/12345/segments). For update or state-change operations, include the resource ID at the end of the URL — Nexla macros can substitute the ID from each upstream record. The HTTP Basic Authorization header and the Content-Type header are added automatically based on your Appcues credential and the selected content format.
The Appcues V2 API does not natively support batched create or update calls — each segment, event, or publish action is processed with its own request, so record batching is best left disabled for Appcues destinations. One exception is the Add User IDs to Segment endpoint, which accepts a user_ids array per call; build that array from multiple upstream records using a transform rather than Nexla's batching layer. Enabling the response webhook option is particularly useful for Create Segment (to capture the new segment ID), Publish Flow (to record the publish timestamp returned by Appcues), and Track a User Event (to verify event acceptance).
Important
Test payloads sent to write endpoints (such as Create Segment, Publish Flow, Unpublish Flow, or Track a User Event) will make real changes in your Appcues account. Use a non-production Appcues account or a clearly-labeled test segment before sending test data against a production Appcues account.
Once all endpoint settings have been configured, click the Done button in the upper right corner of the screen to save and create the destination. To begin sending data to Appcues, open the destination resource menu, and select Activate.
The Nexset data will not be sent to Appcues until the destination is activated. Destinations can be activated immediately or at a later time, providing full control over data movement.