Actito

Datafly Signal delivers events to Actito server-to-server using Actito’s profile API. Instead of running an Actito tracking script in the browser, Signal upserts the visitor’s Actito profile from your own first-party data, keeping contact records current for Actito email campaigns, journeys, and automation scenarios.

Why route Actito through Datafly Signal

  • Profiles are updated from the server, not the browser. Events reach Actito even when a tracker blocker or a failed page unload would have dropped a client-side call, so the profile reflects what actually happened.
  • One consent decision governs every destination. Actito is gated by the same consent state as the rest of your stack, so a withdrawal applies everywhere at once.

Prerequisites

Before configuring Actito in Signal, you need an Actito license, an API user, and a destination profile table.

Step 1: Create an API user

  1. In the Actito portal, the license administrator goes to the API user management area.
  2. Create a new API user dedicated to Signal (for example “Datafly Signal”).
  3. Grant it write access on the entity and profile table you want Signal to feed.
  4. Copy the generated API Key — an opaque string such as qhdfbvdh747R49FRHrthqhdfbvdh74. You will paste this into Signal.

Step 2: Note your entity and profile table

  1. In the Actito Dashboard, note your entity name (the license/database identifier).
  2. Open the profile table you want to keep in sync and note its exact name (it is case-sensitive).
  3. Confirm the table’s unique key is the email attribute, and that it has attributes for the data Signal will write (for example firstName, lastName, phone, language, and a marketing-consent attribute).

Actito stores profile attributes in cleartext because the data lives in your own Actito tenant (your CRM). Email, phone, and name are not hashed for Actito, unlike the match keys sent to advertising platforms.

Configure in Signal

Configuration Fields

FieldRequiredDescription
entityYesYour Actito entity name, exactly as shown in the Dashboard.
profile_tableYesThe destination profile table name (case-sensitive).
api_keyYesThe API Key for your Actito API user.
access_tokenNoAn access token from GET https://api.actito.com/auth/token. See the callout below.
newsletter_subscriptionNoThe Actito subscription that newsletter_subscribed sets to true and newsletter_unsubscribed sets to false.
⚠️

Actito tokens last 15 minutes. Signal does not yet exchange the API key for a token itself (#1497), so the integration sends the pasted access_token and stops authenticating when it expires. Treat the integration as preview-only until #1497 ships.

Management UI Setup

Add the integration

Go to Integrations > Add Integration > Actito.

Choose a preset

Select the Default preset — page views plus identify-driven profile enrichment (email, name, phone, language, and marketing consent).

Enter your credentials

Enter your entity, profile_table, and api_key.

Select the consent category that gates marketing (typically marketing).

Save

Click Save to activate the integration.

API Endpoint

PUT https://api.actito.com/profiles/v5/entities/{entity}/profile-tables/{profile_table}/profiles
Authorization: Bearer {accessToken}

Profiles API V5 creates the profile, or updates the one whose unique key (normally emailAddress) matches. The V4 profile API was deprecated in January 2025 with end of service at the end of Q1 2026; Signal uses V5 from blueprint 0.2.0.

Identity Signals

Actito profiles are keyed on the email address. Call datafly.identify() when a user logs in, registers or submits a form:

datafly.identify("user-123", {
  email: "jane.doe@example.com",
  first_name: "Jane",
  last_name: "Doe"
});
SourceActito fieldNormalisation
traits.emailattributes.emailAddresstrimmed, lower-cased; required (plain text: it is the table’s unique key and the address Actito sends to)
traits.first_nameattributes.firstNameas provided
traits.last_nameattributes.lastNameas provided
context.localeattributes.motherLanguagefirst two letters, upper-case (fr-BE becomes FR)
event timedataCollection.dateISO 8601, with source “Datafly Signal” and way “website”

Event Mapping

The Default preset updates the profile on identity events only; page views and other behavioural events are not profile updates and are not sent.

Signal eventBehaviour
identify, sign_up, loginCreate or update the profile
newsletter_subscribedAlso sets the configured subscription to true
newsletter_unsubscribedAlso sets the configured subscription to false

Example: newsletter sign-up

{
  "attributes": {"emailAddress": "jane.doe@example.com", "firstName": "Jane", "lastName": "Doe", "motherLanguage": "EN"},
  "subscriptions": {"Newsletter": true},
  "dataCollection": {"date": "2026-09-23T10:00:00.000Z", "source": "Datafly Signal", "way": "website"}
}

Add more attributes by mapping them to attributes.<name>; the name must exist on the profile table, or Actito rejects the call with 400.

Testing Your Integration

Trigger an identify

On a test page with Signal installed, call datafly.identify() with a test email, then datafly.track("sign_up").

Check the Signal event debugger

In the Management UI, open the Event Debugger for the Actito integration and confirm the outgoing payload contains email and the expected attributes, and that Actito returned 200 OK.

Verify in Actito

In the Actito Dashboard, open your profile table and search for the test email. The profile should appear (or be updated) with the attributes Signal sent.

Troubleshooting

ProblemSolution
401 UnauthorizedThe access token expired or the API Key is wrong. Re-check the api_key value; Signal refreshes the 15-minute token automatically.
403 ForbiddenThe Actito API user lacks write access on this entity/table. Grant write permission in the Actito portal.
404 Not FoundThe entity or profile_table name is wrong (names are case-sensitive).
400 Bad RequestThe payload contains an attribute the table doesn’t define, or the email is missing. Confirm the table’s attributes match the mappings.
Profile not updatingConfirm the table’s unique key is email and that allowUpdate behaviour is enabled (Signal sets it).
Wrong API hostSome Actito licenses are on a regional host. Confirm your base host is api.actito.com.