ComposableStack.AI CDP
HomeAssessmentAgentLibraryCurriculumHow It WorksSolutionsAbout
← All tasks
Operational taskmodule8· status: no-aep

Route Journey Actions to External Messaging Channels

Define a custom action endpoint that allows a customer journey to deliver personalized messages or trigger workflows in external systems such as SMS providers, Slack, or custom webhooks.

Custom action routing extends a customer journey's reach beyond the platform's native channel set — email, push, in-app — to any system reachable via HTTP, including SMS gateways (Twilio, Sinch), team messaging tools (Slack), in-store digital signage APIs, loyalty point award services, and proprietary internal systems. The core output is a reusable action definition that any journey in the organization can reference, paired with a runtime HTTP call that delivers a dynamically composed payload to the external endpoint at the moment the customer reaches that step.

Configuration requires the practitioner to define a stable, versioned endpoint contract: the base URL, authentication credentials (stored securely, not exposed in journey canvas), the expected request body schema with toBeMapped fields that expose variables to journey authors, and any required HTTP headers. The endpoint itself is responsible for delivery — AJO fires and proceeds, trusting the downstream system to handle retry and DLQ. For critical delivery scenarios, the external endpoint should implement idempotency and expose a callback or status webhook.

Parallel viability note (AEP-locked module): The custom action pattern — an HTTP webhook call from a journey step — is architecturally generic and can be replicated in any workflow orchestration tool. The AJO-specific value is the seamless access to Real-time Customer Profile attributes and external data source results as personalization inputs to the webhook payload, all within the same sub-second execution context that triggers on the entry event. In composable stacks, equivalent capability requires a workflow orchestrator (Temporal, Step Functions) with activities that read from a feature store and call external APIs. Journey Optimizer's stateful orchestration has no clean parallel in composable stacks — the nearest pattern uses an external orchestrator (e.g., Temporal, Airflow) with custom webhook-call activities, but lacks millisecond latency and native profile-attribute resolution at execution time.

Side-by-side implementations

Adobe Experience Platform (AEP)

Parallel implementation not yet available.

Snowflake

Parallel implementation not yet available.

Hightouch·confidence 85%
HightouchAuto-drafted, pending review

Hightouch's Action destinations (Slack, Twilio SMS, Custom API/HTTP webhook) enable the same fire-and-proceed pattern as AJO custom actions. A Hightouch Sync to a Custom API destination configures the target URL, HTTP method, headers, and JSON body template using profile attribute variables from the warehouse model. For Twilio SMS, use the Hightouch Twilio destination (pre-built connector). For Slack, use the Custom API destination with the Slack incoming webhook URL. Idempotency is handled by Hightouch's sync deduplication — rows with the same id are not re-sent unless changed. The HTTP webhook call pattern is architecturally equivalent to AJO's custom action; the difference is that Hightouch fires on sync cadence rather than in sub-second response to an edge event. For sub-second custom action invocation tied to a live behavioral trigger, AJO's pattern is AEP-locked.

Capability: Reverse-ETL (CDW-to-Destination Sync)

Pattern: AEP-as-Edge-Node

Sources

  • source.hightouch-com.docs-journeys

Task-level sources

  • technical-training/module8/index.md
  • technical-training/module8/ex3.md

How is this implementation?

Sign-in-gated. Tomorrow morning's curriculum-ingestor consumes your feedback: "Inaccurate" queues the task for re-review, "needs update" queues it for a refresh, and "one vendor panel is wrong" re-drafts just that panel.

What kind of feedback?
Sign-in required. Free.