Management APIPipeline Integrations

Pipeline Integrations

Pipeline integrations connect an integration template (at a specific revision) to a pipeline. This controls which vendors receive events from each pipeline and at which configuration version.

How It Works

Pipeline "Marketing Website"
  ├── Meta CAPI @ Revision v3 (enabled)
  ├── GA4 @ Revision v2 (enabled)
  └── TikTok @ Revision v1 (disabled)

Each pipeline can have multiple integrations attached. Each attachment pins to a specific revision, allowing you to:

  • Roll out configuration changes to one pipeline at a time
  • Keep different pipelines on different revision versions
  • Disable an integration on a specific pipeline without affecting others

Pipeline Integration Object

{
  "id": "pi_abc123",
  "pipeline_id": "pip_xyz789",
  "integration_id": "tmpl_abc123",
  "integration_name": "Meta CAPI Production",
  "vendor": "meta_capi",
  "revision_id": "rev_xyz789",
  "revision_number": 3,
  "latest_revision": 5,
  "enabled": true,
  "created_at": "2026-02-20T10:00:00Z",
  "updated_at": "2026-02-25T14:30:00Z"
}
FieldTypeDescription
idstringUnique pipeline integration identifier
pipeline_idstringPipeline this integration is assigned to
integration_idstringIntegration template ID
integration_namestringTemplate display name (for convenience)
vendorstringVendor key
revision_idstringPinned revision ID
revision_numberintegerPinned revision number
latest_revisionintegerLatest available revision number for the template
enabledbooleanWhether delivery is active for this pipeline
created_atstringISO 8601 creation timestamp
updated_atstringISO 8601 last-updated timestamp

When revision_number is less than latest_revision, a newer configuration version is available. Update the revision_id to deploy the latest revision to this pipeline.

Parameter Substitution

If an integration revision’s config contains {{pipeline_param.KEY}} references, the pipeline’s parameters are substituted at processing time. This means the same integration revision can be shared across multiple pipelines, with each pipeline supplying its own values for vendor credentials, measurement IDs, or other configuration.

For example, Pipeline A and Pipeline B can both use the same GA4 integration revision. Pipeline A sets ga4_measurement_id to G-AAAA in its parameters, while Pipeline B sets it to G-BBBB. The event processor resolves the correct value for each pipeline when it loads the config.

List Pipeline Integrations

GET /v1/admin/pipelines/{pid}/integrations

Returns all integrations assigned to a pipeline.

Request:

curl -X GET http://localhost:8084/v1/admin/pipelines/pip_xyz789/integrations \
  -H "Authorization: Bearer {access_token}"

Response:

{
  "integrations": [
    {
      "id": "pi_abc123",
      "pipeline_id": "pip_xyz789",
      "integration_id": "tmpl_abc123",
      "integration_name": "Meta CAPI Production",
      "vendor": "meta_capi",
      "revision_id": "rev_xyz789",
      "revision_number": 3,
      "latest_revision": 5,
      "enabled": true,
      "created_at": "2026-02-20T10:00:00Z",
      "updated_at": "2026-02-25T14:30:00Z"
    }
  ]
}

Required role: viewer or above.

Assign Integration to Pipeline

POST /v1/admin/pipelines/{pid}/integrations

Attach an integration template (at a specific revision) to a pipeline.

Request:

{
  "integration_id": "tmpl_abc123",
  "revision_id": "rev_xyz789",
  "enabled": true
}
FieldTypeRequiredDescription
integration_idstringYesIntegration template to assign
revision_idstringYesRevision to pin to
enabledbooleanNoWhether to enable delivery immediately (default true)

Response (201 Created): Full pipeline integration object.

Required role: editor or above.

Update Pipeline Integration

PUT /v1/admin/pipelines/{pid}/integrations/{id}

Update an existing pipeline integration assignment. Use this to change the pinned revision or toggle enabled/disabled.

Request:

{
  "revision_id": "rev_new456",
  "enabled": true
}
FieldTypeRequiredDescription
revision_idstringNoNew revision ID to pin to
enabledbooleanNoEnable or disable delivery

Response: Updated pipeline integration object.

Example: Deploy a New Revision

# 1. Create a new revision with updated config
curl -X POST http://localhost:8084/v1/admin/integration-templates/tmpl_abc123/revisions \
  -H "Authorization: Bearer {access_token}" \
  -H "Content-Type: application/json" \
  -d '{
    "config": { "pixel_id": "1234567890", "access_token": "new_token..." },
    "delivery_mode": "server_side",
    "change_summary": "Rotated access token"
  }'
 
# 2. Update the pipeline integration to use the new revision
curl -X PUT http://localhost:8084/v1/admin/pipelines/pip_xyz789/integrations/pi_abc123 \
  -H "Authorization: Bearer {access_token}" \
  -H "Content-Type: application/json" \
  -d '{ "revision_id": "rev_new456" }'

Required role: editor or above.

Remove Integration from Pipeline

DELETE /v1/admin/pipelines/{pid}/integrations/{id}

Remove an integration from a pipeline. Events will no longer be delivered to this vendor from this pipeline.

Request:

curl -X DELETE http://localhost:8084/v1/admin/pipelines/pip_xyz789/integrations/pi_abc123 \
  -H "Authorization: Bearer {access_token}"

Response:

{
  "status": "removed"
}
⚠️

Removing a pipeline integration stops event delivery to that vendor from this pipeline immediately. The integration template and its revisions are not affected and remain available for other pipelines.

Required role: editor or above.