# Trigger Workflow Triggers enrichment and routing workflows from external systems. ## Overview The Workflow Trigger API provides a generic interface for initiating enrichment and routing workflows from various external systems like Eloqua, Customer Data Platforms (CDP), Data Lakes, and other marketing automation platforms. ## Authentication Requires either an API key or OAuth2 bearer token in the Authorization header. ## Rate Limits Designed to support bursty event traffic, capable of handling hundreds of requests per minute. ## Request Body - record_data: Generic record payload containing fields for Lead, Contact, Opportunity, or other custom objects - source_system: Optional source system identifier (e.g., 'eloqua', 'cdp', 'data_lake') - enrichment_preferences: Optional enrichment preferences and configuration ## Response Fields - success: Boolean indicating request success - status: Workflow status (triggered, queued, failed) - request_id: Unique request ID for tracking - workflow_id: ID of the triggered workflow - processing_time_ms: Processing time in milliseconds - enrichment_job_id: ID of enrichment job created (if applicable) - credits_consumed: Number of credits used - credits_remaining: Credits remaining in account - cached: Whether result was from cache ## Features - Generic Payload: Accepts any record type (Lead, Contact, Opportunity, custom objects) - Audit Logging: All requests and responses are logged for compliance - Retry Logic: Automatic retries on failure with exponential backoff - High Throughput: Optimized for bursty event traffic - Credit Tracking: Transparent credit consumption tracking ## Credit Usage Workflow triggers consume credits based on complexity: - Basic Trigger: 1 credit per record - With Enrichment: +2 credits for enrichment processing - With Routing: +1 credit for routing logic Endpoint: POST /v1/workflows/{workflow_id}/trigger Version: 1.4.1 Security: BearerAuth ## Path parameters: - `workflow_id` (string, required) ## Request fields (application/json): - `record_data` (object, required) Generic record payload containing fields for Lead, Contact, Opportunity, or other custom objects - `source_system` (any) Source system identifier (e.g., 'eloqua', 'cdp', 'data_lake') - `enrichment_preferences` (any) Optional enrichment preferences and configuration ## Response 200 fields (application/json): - `success` (boolean, required) Boolean indicating request success - `status` (string, required) Status of the workflow trigger Enum: "triggered", "queued", "failed" - `request_id` (string, required) Unique request ID for tracking - `workflow_id` (string, required) ID of the triggered workflow - `processing_time_ms` (integer, required) Time taken to process the request in milliseconds - `enrichment_job_id` (any) ID of the enrichment job created (if applicable) - `credits_consumed` (integer, required) Number of credits used for this request - `credits_remaining` (integer, required) Credits remaining in your account after this request - `cached` (boolean) Boolean indicating if this result was returned from cache ## Response 400 fields (application/json): - `success` (boolean) Always false for error responses - `error` (string, required) Error message - `details` (any) Additional error details - `request_id` (any) Request ID for tracking - `workflow_id` (any) Workflow ID that failed - `credits_required` (any) Credits required for insufficient credit errors - `credits_remaining` (any) Credits remaining for insufficient credit errors - `retry_after` (any) Seconds to wait before retrying for rate limit errors ## Response 401 fields (application/json): - `success` (boolean) Always false for error responses - `error` (string, required) Error message - `details` (any) Additional error details - `request_id` (any) Request ID for tracking - `workflow_id` (any) Workflow ID that failed - `credits_required` (any) Credits required for insufficient credit errors - `credits_remaining` (any) Credits remaining for insufficient credit errors - `retry_after` (any) Seconds to wait before retrying for rate limit errors ## Response 402 fields (application/json): - `success` (boolean) Always false for error responses - `error` (string, required) Error message - `details` (any) Additional error details - `request_id` (any) Request ID for tracking - `workflow_id` (any) Workflow ID that failed - `credits_required` (any) Credits required for insufficient credit errors - `credits_remaining` (any) Credits remaining for insufficient credit errors - `retry_after` (any) Seconds to wait before retrying for rate limit errors ## Response 409 fields (application/json): - `success` (boolean) Always false for error responses - `error` (string, required) Error message - `details` (any) Additional error details - `request_id` (any) Request ID for tracking - `workflow_id` (any) Workflow ID that failed - `credits_required` (any) Credits required for insufficient credit errors - `credits_remaining` (any) Credits remaining for insufficient credit errors - `retry_after` (any) Seconds to wait before retrying for rate limit errors ## Response 422 fields (application/json): - `detail` (array) - `detail.loc` (array, required) - `detail.msg` (string, required) - `detail.type` (string, required) ## Response 429 fields (application/json): - `success` (boolean) Always false for error responses - `error` (string, required) Error message - `details` (any) Additional error details - `request_id` (any) Request ID for tracking - `workflow_id` (any) Workflow ID that failed - `credits_required` (any) Credits required for insufficient credit errors - `credits_remaining` (any) Credits remaining for insufficient credit errors - `retry_after` (any) Seconds to wait before retrying for rate limit errors ## Response 500 fields (application/json): - `success` (boolean) Always false for error responses - `error` (string, required) Error message - `details` (any) Additional error details - `request_id` (any) Request ID for tracking - `workflow_id` (any) Workflow ID that failed - `credits_required` (any) Credits required for insufficient credit errors - `credits_remaining` (any) Credits remaining for insufficient credit errors - `retry_after` (any) Seconds to wait before retrying for rate limit errors