Sendlane

Datafly Signal delivers events to Sendlane server-to-server using the API v2 Custom Integration endpoint. Events are keyed on the contact email so Sendlane resolves or creates the contact and can trigger email and SMS automations, build segments, and track ecommerce behaviour — without a client-side Sendlane pixel.

Prerequisites

Before configuring Sendlane in Signal you need a Sendlane account with API v2 access and a Custom Integration.

Step 1: Generate an API v2 access token

  1. Log in to Sendlane and go to Account > API.
  2. Create or copy your API v2 access token. This is sent as a Bearer credential on every request.

Step 2: Create a Custom Integration and copy its token

  1. Go to Integrations > Custom Integration in Sendlane.
  2. Create a new custom integration (or open an existing one).
  3. Copy the Custom Integration Token. This links incoming events to that integration and is required for event tracking.

Both tokens are required. The API token authenticates the request; the Custom Integration Token tells Sendlane which integration the events belong to.

Configuration

Configuration Fields

FieldRequiredDescription
api_tokenYesYour Sendlane API v2 access token, sent as Authorization: Bearer. Found under Account > API.
custom_integration_tokenYesThe Custom Integration Token that links events to a specific Sendlane custom integration.

Configure in Signal

  1. Go to Integrations > Add Integration > Sendlane.
  2. Choose a variant:
    • Default — page/active-on-site, identify, and core ecommerce events.
    • Retail — full ecommerce funnel with line items, value, and currency.
  3. Enter your api_token and custom_integration_token.
  4. Select consent categories (typically marketing).
  5. Click Save.

API Endpoint

POST https://api.sendlane.com/v2/custom-integrations/events
Authorization: Bearer {api_token}
Content-Type: application/json

The Sendlane event name lands in the event field, the Custom Integration Token in token, and the contact is identified by email. All other mapped fields are sent at the body root.

Identity Signals

Sendlane is an email-first platform: the contact is resolved by email address, which Signal maps from datafly.identify() traits to the email field on every event. When a contact does not yet exist, Sendlane creates it from the email and any contact traits (first_name, last_name, phone) carried on identify-type events.

TraitSendlane fieldNotes
emailemailPrimary match key. Sent on every event.
firstNamefirst_nameSent on the identify event.
lastNamelast_nameSent on the identify event.
phonephoneSent on the identify event (used for SMS automations).

Sendlane resolves contacts by raw email — no client-side hashing is applied for this integration. Email is transmitted server-to-server over TLS.

How to send user data

Call datafly.identify() when a user registers, logs in, or submits a form:

datafly.identify("user-123", {
  email: "jane.doe@example.com",
  firstName: "Jane",
  lastName: "Doe",
  phone: "+44 7700 900123"
});

Event Mapping

Retail preset

Signal eventSendlane event
pageactive_on_site
Signed Upidentify
Product Viewedproduct_viewed
Product Addedadded_to_cart
Checkout Startedcheckout_started
Order Completedorder_placed

Events not in the mapping are dropped. To customise, edit the integration’s Field Mappings in the Management UI.

Example: Order Completed event

Datafly.js call:

datafly.track("Order Completed", {
  order_id: "1001",
  revenue: 49.99,
  currency: "USD",
  products: [
    { product_id: "12345678", sku: "TS1", product_name: "tshirt #1", quantity: 1, item_price: 19.99, total: 19.99 }
  ]
});

Sendlane payload sent by Signal:

{
  "event": "order_placed",
  "token": "ABCDEFGHIJKLM1234567890",
  "email": "jane.doe@example.com",
  "order_id": "1001",
  "value": 49.99,
  "currency": "USD",
  "line_items": [
    { "product_id": "12345678", "sku": "TS1", "product_name": "tshirt #1", "quantity": 1, "item_price": 19.99, "total": 19.99 }
  ]
}

Testing

Send a test event

Trigger an Order Completed event on your site (or replay one from Signal’s event debugger) for a contact whose email exists in Sendlane.

Confirm it arrived

  1. In Sendlane, open your Custom Integration and check the event feed for the incoming event.
  2. Confirm the contact was matched or created from the email field.

Confirm it triggers automation

Build a Sendlane automation triggered on the custom event (for example order_placed) and verify a test event moves the contact into the automation.

Troubleshooting

ProblemSolution
401 UnauthorizedCheck the API v2 access token under Account > API. It is sent as Authorization: Bearer.
403 ForbiddenThe Custom Integration Token (token) is missing or wrong. Re-copy it from the integration.
Events arrive but no contact is createdEnsure email is present — call datafly.identify() with an email before tracking events.
422 validation errorCheck required fields for the event (for example order_id and value on order_placed). Inspect the payload in Signal’s event debugger.
Automation does not triggerConfirm the automation trigger uses the exact Sendlane event name (for example order_placed, not the display name).