Appcues

Datafly Signal sends product-adoption events and profile properties for identified users to Appcues through its HTTP API, for flow, checklist and survey targeting.

The Appcues user id is part of the request path; Signal fills it per event from the user ID the preset maps (path-encoded), so only identified users are sent. Confirm the first requests against your Appcues account.

Why route Appcues through Datafly Signal

  • Events arrive when the browser cannot send them. Server-side delivery is not stopped by ad blockers, tracking prevention or a page unload.
  • One consent decision governs every destination. The integration is gated by the same consent state as the rest of your stack.

Prerequisites

  • Your Appcues account id.
  • The site identifying users to Appcues with the same user id Signal sees as user_id (an opaque CRM id, not an email address: it travels in the URL).

Configuration

FieldRequiredDescription
account_idYesYour Appcues account ID. Found in Studio under Settings > Installation, or in the embed snippet (AppcuesSettings / the numeric ID in the loader URL). Used in the activity API URL path: /v1/accounts/{account_id}/users/{user_id}/activity.

Configure in Signal

Add the integration

Go to Integrations > Add Integration > Appcues.

Choose a preset

SaaS.

Enter the configuration

Fill in the fields in the table above.

Choose the categories that gate product analytics for your product.

Save

Signal delivers the next matching event.

API Endpoint

POST https://api.appcues.com/v1/accounts/ACCOUNT_ID/users/USER_ID/activity
Content-Type: application/json

No Authorization header is documented. Body: events (name, timestamp, attributes) and profile_update.

Identity Signals

SignalSent asNotes
User idURL pathThe Signal user_id. Anonymous visitors are not sent.
Profile propertiesprofile_updateIdentify traits: email (plain text, trimmed and lower-cased: Appcues personalises flows with the profile), name, company, plan, role, created_at.

Event Mapping

SaaS preset (saas)

Product-adoption events for Appcues targeting of flows, checklists and surveys: sign-up, login, onboarding, feature use, trial and subscription lifecycle, each with its documented attributes, plus the identify traits as profile_update. Identified users only: the Appcues user id is the Signal user_id, which must be the id the site passes to Appcues.identify(); anonymous visitors are not sent (an anonymous id would create an Appcues profile the browser session never joins, and profiles are billed). The user id travels in the URL path, so it must be an opaque CRM id, never an email address. profile_update.email is sent in plain text because Appcues stores it on the profile for targeting and email, as the site’s own Appcues.identify() call does. CANNOT DELIVER YET: the delivery driver does not resolve the per-event {{user_id}} path token (#1283).

Signal eventSent asEnabled
pagePage ViewedOff by default
sign_upSigned UpYes
loginLogged InYes
onboarding_completedOnboarding CompletedYes
feature_usedFeature UsedYes
trial_startedTrial StartedYes
trial_convertedTrial ConvertedYes
subscription_startedSubscription StartedYes
subscription_cancelledSubscription CancelledYes

To customise, edit the integration’s Field Mappings in the Management UI.

Example: a subscription start

What Signal sends (rendered from the preset):

POST https://api.appcues.com/v1/accounts/12345/users/%7B%7Buser_id%7D%7D/activity
{
  "events": [
    {
      "attributes": {
        "billing_cycle": "monthly",
        "currency": "GBP",
        "plan_id": "pro",
        "plan_name": "Pro",
        "revenue": 49
      },
      "name": "Subscription Started",
      "timestamp": 1758500000
    }
  ],
  "profile_update": {
    "company": "Acme",
    "created_at": "2026-01-02T03:04:05Z",
    "email": "neill@example.com",
    "first_name": "Neill",
    "last_name": "Mcfixture",
    "name": "Neill Mcfixture",
    "plan": "pro",
    "role": "admin"
  },
  "user_id": "crm-user-7"
}

Testing

Send a test event

Trigger the event on your site, or replay one from Signal’s event debugger.

Check the response

Confirm a 2xx response and check the user’s profile in Appcues Studio.

Troubleshooting

ProblemSolution
Requests fail with 404The account ID setting is wrong, or the event had no user ID (the preset sends identified users only).

Limitations

  • Page views are off by default: the Appcues SDK records them.