Totango
Datafly Signal delivers events to Totango server-to-server using the SDR (Service Data Records) HTTP API. Product-usage activities land on the account timeline and feed Totango health scores, SuccessPlays, and usage segments — with no browser tag and no client-side JavaScript that ad blockers or tracking-prevention can strip.
Prerequisites
Before configuring Totango in Signal, you need a Totango subscription with SDR enabled and your Service ID. You may also need an SDR security token.
Find your Service ID
- In Totango, go to Settings.
- Open Personal Access Token and Service ID (under the API / SDR settings).
- Copy your Service ID — it looks like
SP-1234-01. This scopes all data to your Totango service.
Generate an SDR security token (optional)
Some Totango services require a token on every SDR request; others accept token-less SDR.
- In Settings, open SDR Tokens.
- Click Generate Token and copy it.
- If your service does not enforce a token, you can leave this blank in Signal.
Confirm your data centre
Totango runs separate US and EU data centres. Check with your Totango admin which region your service is on — the endpoint differs and sending to the wrong region silently drops your data.
Configuration
In Signal, add the Totango integration to your pipeline and fill in:
| Field | Required | Description |
|---|---|---|
| Service ID | Yes | Your Totango Service ID, e.g. SP-1234-01. |
| SDR Security Token | No | The SDR token, if your service enforces one. |
| Data Center Endpoint | No | https://sdr.totango.com/pixel.gif (US, default) or https://sdr-eu1.totango.com/pixel.gif (EU). |
| Default Module | No | Module (product area) attached to activities that do not set their own. |
Totango is account-centric. Activities are recorded against an account (a company), not just an individual user. Make sure your events carry an account_id so usage rolls up to the right account; without it, Signal falls back to the user identifier.
Configure in Signal
- Open your pipeline in the Signal management UI and click Add integration.
- Select Totango from the CRM category.
- Paste your Service ID (and SDR Security Token if required).
- Set the Data Center Endpoint to match your Totango region.
- Apply the B2B / SaaS blueprint preset, review the event mappings, and save.
- Enable the integration to start delivery.
API Endpoint
Signal sends each event as an HTTPS request to the Totango SDR gateway:
GET https://sdr.totango.com/pixel.gif (US data centre)
GET https://sdr-eu1.totango.com/pixel.gif (EU data centre)All fields travel in the URL query string. A successful request returns HTTP 200 with a 1×1 transparent GIF. Requests use HTTPS 1.2 or above.
Identity Signals
Totango identifies the account and user from these query parameters:
| Parameter | Source in Signal | Purpose |
|---|---|---|
sdr_s | Service ID (config) | Scopes data to your Totango service. |
sdr_o | account_id (falls back to user id) | The account the activity belongs to. |
sdr_u | user_id / email | The user who performed the activity. |
sdr_u.name | user name trait | User display name attribute. |
sdr_odn | account_name | Account display name. |
Account and user attributes use dotted parameters: sdr_o.<Attribute> for account-level (for example sdr_o.Plan=Pro, sdr_o.MRR=499) and sdr_u.<Attribute> for user-level (for example sdr_u.Phone=555-3232). Attributes are created automatically in Totango on first write.
Event Mapping
Each Signal event becomes a Totango activity, identified by an activity name (sdr_a) and a module (sdr_m, the product area the activity belongs to). Both are required for activity tracking.
The B2B / SaaS preset maps Signal’s GA4-style events to Totango activities:
| Signal event | Totango activity (sdr_a) | Module (sdr_m) |
|---|---|---|
page | Page Viewed | page path |
Signed Up | Signed Up | Onboarding |
Logged In | Logged In | Login |
Feature Used | Feature Used | feature name |
Plan Viewed | Plan Viewed | Billing |
Trial Started | Trial Started | Billing |
Subscription Started | Subscription Started | Billing |
Subscription Cancelled | Subscription Cancelled | Billing |
Support Ticket Created | Support Ticket Created | Support |
Events not in the preset are dropped.
Example
A Logged In event from Datafly.js:
datafly.track('Logged In', {
account_id: 'acme-corp',
account_name: 'Acme Corp',
method: 'sso'
}, {
user_id: 'jane@acme.com',
traits: { email: 'jane@acme.com', name: 'Jane Doe' }
});is delivered to Totango as:
GET https://sdr.totango.com/pixel.gif?sdr_s=SP-1234-01
&sdr_o=acme-corp
&sdr_odn=Acme%20Corp
&sdr_u=jane%40acme.com
&sdr_u.name=Jane%20Doe
&sdr_a=Logged%20In
&sdr_m=LoginTotango records a “Logged In” activity in the Login module against the Acme Corp account for user jane@acme.com.
Testing
- Trigger an event on your site (e.g. log in) so Signal delivers it.
- In Totango, open the account you sent (
sdr_o). - Check the account timeline — the activity should appear within a few minutes, grouped under its module.
- Open the user under that account to confirm user-level attributes (name, email) were set.
Troubleshooting
No activity appears on the account timeline. Confirm the Service ID is correct and matches the data centre you selected. A US Service ID sent to the EU endpoint (or vice versa) is silently dropped.
Activities land but the account looks wrong / fragmented.
You are likely sending a per-visitor identifier as sdr_o. Send a stable account_id so usage rolls up to the company account, not an anonymous visitor.
Requests return 401 or 403. Your service enforces an SDR security token. Add the token in the SDR Security Token field.
Activity is recorded with no module / under the wrong group.
Every activity needs both an activity name and a module (sdr_m). Set a Default Module in the integration config, or add a module mapping to the event.
Requests return 400.
A required parameter is missing — usually sdr_o (account id) or sdr_u (user id). Make sure your events carry an account and user identifier.