Customer Journeys & Pipelines API
Manage Kanban sales pipelines, lead nurturing stages, and event-driven WhatsApp campaign broadcasts triggered on stage progression.
Overview & Architecture
The Journies API allows developers to programmatically track leads through visual funnel pipelines, move contacts across stages, and trigger automated WhatsApp campaign templates on entry. Stages can also have no campaign attached (campaign_id = null) to track pipeline milestones (such as Deal Won or Under Review) without forcing outbound messages.
Define sequential stages with custom sort orders. Contacts can belong to multiple pipelines independently.
Choose whether entering a stage triggers an automated broadcast or merely updates internal CRM milestone status.
API Endpoints
/api/v1/journiesList all customer journey pipelines and their stage hierarchies for the authenticated workspace.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| page | integer | Optional | Page number for paginated results (default: 1) |
| limit | integer | Optional | Number of pipelines per page (default: 25, max: 100) |
| search | string | Optional | Filter journeys by pipeline name |
{
"status": "success",
"data": [
{
"id": 1,
"name": "Enterprise Sales Pipeline",
"description": "High-value B2B lead funnel",
"contacts_count": 42,
"stages": [
{
"id": 10,
"name": "Inquiry Received",
"order": 1,
"campaign_id": 4,
"contacts_count": 12
},
{
"id": 11,
"name": "Closed Won",
"order": 2,
"campaign_id": null,
"contacts_count": 30
}
]
}
]
}/api/v1/journies/{id}Retrieve full details of a journey pipeline, including attached API campaigns per stage.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| journey_id | integer | Required | Pipeline ID (passed in route or query param) |
| include_contacts | boolean | Optional | When true, returns contact cards grouped in stages |
/api/v1/journies/contactsAdds a contact to the pipeline's initial stage (lowest order). If the stage has an attached campaign, the entry broadcast is dispatched immediately.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| journey_id | integer | Required | Target pipeline ID |
| phone | string | Optional | Contact phone with country code. Required if contact_id omitted |
| contact_id | integer | Optional | Existing contact ID. Required if phone omitted |
{
"journey_id": 1,
"phone": "+919876543210"
}/api/v1/journies/move-contactMoves a contact between stages within a journey. Automatically detaches from the previous stage and fires ContactMovedToStage.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| stage_id | integer | Required | Destination stage ID |
| contact_id | integer | Optional | Target contact ID (or provide phone) |
| phone | string | Optional | Target contact phone number |
{
"stage_id": 11,
"contact_id": 12
}/api/v1/journies/contact-stagesRetrieve all current journey stage memberships for a specific contact across all active pipelines.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| phone | string | Optional | Filter by contact phone |
| contact_id | integer | Optional | Filter by contact ID |
{
"status": "success",
"data": {
"contact": {
"id": 12,
"name": "Aarav Sharma",
"phone": "+919876543210"
},
"stages": [
{
"stage_id": 11,
"stage_name": "Demo Completed",
"order": 2,
"campaign_id": null,
"journey_id": 1,
"journey_name": "Enterprise Sales Pipeline"
}
]
}
}Model Context Protocol (MCP) Integration
The official npm package @codingmantra/wacm-mcp provides 3 dedicated read tools for customer journeys:
list_journiesList pipelines, stages, and contact distribution.
get_journeyInspect a specific pipeline and its stages by ID.
get_contact_stagesCheck which pipeline stages a contact belongs to.
AI & LLM Integration Hub
LLM ReadyFeed WACM API specs directly to Cursor, Claude, ChatGPT, Antigravity, or custom AI agents.