Integrations
Datafly Signal delivers events server-to-server to vendor APIs. The Integration Library provides 95+ pre-built vendor integrations with one-click setup, industry-specific variants, and full customisation.
How Integrations Work
When you set up an integration, you create an integration template and assign it to one or more pipelines. Events collected by Datafly.js flow through the full pipeline before reaching the vendor:
Datafly.js → Ingestion Gateway → Kafka (raw-events)
→ Event Processor (Org Data Layer → Pipeline Transformations)
→ Kafka (delivery-{integration_id})
→ Delivery Worker → Vendor API- The Event Processor applies your Org Data Layer enrichments and per-pipeline transformations.
- Processed events are published to a dedicated Kafka topic per integration (
delivery-{integration_id}). - The Delivery Worker for that vendor consumes from the topic, formats the payload to match the vendor’s API specification, and sends it server-to-server.
Each vendor has its own Delivery Worker implementation that understands the target API’s authentication, payload format, rate limits, and error handling.
Integration Library
The Integration Library is a browsable catalog of 95+ pre-built vendor integrations. Each catalog entry includes:
- Configuration fields with labels, types, and help text
- Industry variants (e.g. Retail, Travel, Media) with tuned default configurations
- One-click install that creates a template and first revision automatically
Using the Library (Management UI)
- Navigate to Integrations in the sidebar.
- Click the Add Integration button (from My Integrations) or switch to the Integration Library tab.
- Browse by category or search for a vendor. Each vendor card shows its brand logo for quick recognition.
- Click Install on the vendor you want.
- Choose a variant (if available), select a Blueprint for a pre-built configuration (if one exists for your vertical), fill in the required credentials, and click Install Integration.
Blueprints
Blueprints are pre-built V2 schema-mapping configurations for common vendor + vertical combinations. When installing an integration that has Blueprints available, you can select one to start with a ready-made configuration instead of building from scratch.
Available Blueprint verticals include Retail, Travel, and Media, with pre-mapped event types (purchase, add_to_cart, page_view, etc.) and field mappings specific to each vendor’s API format.
All Blueprint mappings are fully editable after install — they serve as a starting point, not a constraint.
Custom Integrations
For vendors not in the library, or for internal APIs, you can create a Custom Integration from the My Integrations tab. Custom integrations support:
- Freeform vendor display name
- Full V2 schema-mapping builder access
- Webhook delivery to any HTTP endpoint
Using the Library (API)
# List the catalog
curl -X GET "http://localhost:8084/v1/admin/integration-catalog?category=advertising" \
-H "Authorization: Bearer YOUR_TOKEN"
# Install from catalog
curl -X POST http://localhost:8084/v1/admin/integration-catalog/meta_capi/install \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Meta CAPI Production",
"variant": "retail",
"config": {
"pixel_id": "1234567890",
"access_token": "your_access_token"
},
"delivery_mode": "server_side"
}'See the Integration Catalog API for full documentation.
Templates & Revisions
Integrations use a template + revision model for versioned configuration management:
- Template: An org-level reusable integration definition (e.g. “Meta CAPI Production”)
- Revision: An immutable configuration snapshot (v1, v2, v3…)
- Pipeline Integration: An assignment of a template at a specific revision to a pipeline
Template "Meta CAPI Production"
├── Revision v1 — initial setup
├── Revision v2 — updated access token
└── Revision v3 — increased batch size (current)
Pipeline "Marketing Website" → uses v3
Pipeline "Blog" → uses v2To change configuration, you create a new revision. This ensures a complete audit trail and allows different pipelines to use different versions.
See the Integration Templates API and Pipeline Integrations API for full documentation.
V2 Schema-Mapping Builder
The integration builder uses a schema-aware point-and-click interface organised into four categories:
| Category | Purpose |
|---|---|
| Parameters | Vendor credentials and connection settings (API keys, pixel IDs) |
| Global | Field mappings applied to every event (user identifiers, IP, timestamps) |
| Events | Per-event-type mappings with filter, mappings, enrichments, and transforms |
| Defaults | Catch-all handling for unmapped event types (pass through, drop, or map with defaults) |
Each mapping row maps a source field (from the canonical Datafly event schema) to a vendor field (from the vendor’s API schema), with optional transforms (lowercase, sha256, to_unix_seconds, etc.).
The builder includes:
- Autocomplete for both source and vendor fields from known schemas
- Coverage indicator showing how many required/optional vendor fields are mapped
- Code editor with YAML ↔ visual sync for advanced users
- Preview with dry-run against sample events
The legacy V1 step-based builder is retained for backward compatibility. New integrations default to V2.
Consent Categories
When consent categories are configured on an integration, the Delivery Worker only delivers events where the user has granted consent for all listed categories. Consent state is read from the event’s context.consent object, which Datafly.js populates from your consent management platform.
{
"context": {
"consent": {
"analytics": true,
"marketing": false,
"advertising": true
}
}
}In this example, an integration requiring ["analytics", "marketing"] would not receive this event because marketing is false.
If no consent categories are configured on an integration, all events are delivered regardless of consent state. Always configure consent categories for integrations subject to GDPR, CCPA, or other privacy regulations.
Retry Behaviour
When a delivery attempt fails (network error, 5xx response, rate limit hit), the Delivery Worker retries with exponential backoff:
| Attempt | Delay |
|---|---|
| 1st retry | 1 second |
| 2nd retry | 4 seconds |
| 3rd retry | 16 seconds |
| 4th retry | 64 seconds |
| 5th retry | 256 seconds |
- Maximum retries: 5 attempts (plus the original attempt, for 6 total tries).
- Backoff formula:
delay = base^attemptwherebase = 4 secondsand the first retry uses a 1-second floor. - Jitter: A random jitter of up to 25% is added to each delay to prevent thundering herd issues.
Dead Letter Queue
After all retry attempts are exhausted, the event is published to a dead letter topic (dlq-delivery-{integration_id}). Dead-lettered events are retained for 7 days and can be:
- Inspected via the Management UI under Integrations > {name} > Dead Letter Queue.
- Replayed manually once the underlying issue is resolved.
- Exported for analysis via the Management API.
The Management UI shows delivery success rate, retry counts, and dead letter queue depth on each integration’s dashboard panel.
Rate Limiting
Each vendor integration has configurable rate limits to avoid exceeding vendor API quotas:
| Setting | Default | Description |
|---|---|---|
rate_limit_rps | Vendor-specific | Maximum requests per second |
rate_limit_burst | rate_limit_rps * 2 | Burst capacity for short spikes |
rate_limit_daily | 0 (unlimited) | Optional daily request cap |
When the rate limit is reached, events are buffered in Kafka and delivered as capacity becomes available. No events are dropped due to rate limiting — delivery is simply delayed.
Vendor-specific default rate limits are tuned to stay well within documented API quotas. Override only if you have negotiated higher limits with the vendor.
Supported Integrations
Advertising
| Vendor | Description |
|---|---|
| Meta Conversions API (CAPI) | Server-to-server event delivery via Conversions API |
| Google Ads | Enhanced Conversions |
| TikTok | Events API |
| Conversions API | |
| Snapchat | Conversions API |
| Conversions API | |
| The Trade Desk | Real-Time Conversions |
| X (Twitter) Ads | Conversions API |
| Microsoft Ads | UET |
| Criteo | Events API |
| + 29 more… | View all advertising integrations |
Analytics
| Vendor | Description |
|---|---|
| Google Analytics 4 | Measurement Protocol |
| Adobe Analytics | Data Insertion API |
| Amplitude | HTTP V2 API |
| Mixpanel | Ingestion API |
| + 7 more… | View all analytics integrations |
Attribution
| Vendor | Description |
|---|---|
| Adjust | S2S Events |
| AppsFlyer | S2S Events |
| Impact | Conversions |
| + 10 more… | View all attribution integrations |
CDP
| Vendor | Description |
|---|---|
| Braze | REST API |
| HubSpot | Events API |
| Salesforce CDP | Ingestion API |
| + 15 more… | View all CDP integrations |
Cloud Storage
| Vendor | Description |
|---|---|
| Google BigQuery | Streaming Insert |
| Snowflake | Snowpipe |
| Amazon S3 | PUT Object |
| + 6 more… | View all cloud storage integrations |
Other
| Vendor | Description |
|---|---|
| Custom Webhook | Any HTTP endpoint |
| + 4 more… | View all other integrations |