Bot Journey

Lodgestory CRM › Settings → Bot Journeys

Bot Journeys

Build multi-step conversations that answer guests in under a second, 24/7, in any channel — without writing a line of code.

TL;DR

  • What it is — a drag-and-drop canvas where you design automated conversations. Ask questions, route by answer, check a condition, hit an external system, wait a day, hand off to a human — all as blocks you wire together on a canvas.
  • Who it's for — Admins building automations, growth teams running qualification funnels, and operators who want a bot to handle the top half of inbound without hiring more agents. Users can view but not edit.
  • Top outcome — reply to every inbound message in under a second, with the bot handling the easy half and humans stepping in only when they should.

At a glance

Plan tiersAll paid tiers.
Who can configureAccount Owners and Admins. Users have read-only access.
ChannelsFully supported: WhatsApp Official, WhatsApp Unofficial, Email, and Web Chat. Instagram and Facebook Messenger are supported with graceful fallbacks for interactive elements.
IntegrationsWorks with your WhatsApp Business account, your email sending domain, your own APIs via the API step, AI via the AI Agent step, and WhatsApp Templates for outbound outside the 24-hour window.
Top limitsOne live journey per channel. Text messages up to 4,096 characters. Reply buttons 1–3. Quick reply buttons 1–10. Prompt retries 0–5 or unlimited. Prompt timeout 10 seconds to 60 minutes.
APIYes — partner API for every part of a journey.

How to find it

Sidebar: Settings → Bot Journeys.

Direct URL: https://lodgestory.com/crm/settings/bot-journeys

Inside a specific journey: https://app.lodgestory.com/crm/settings/bot-journeys/builder/{journeyId}

Goals (nested sub-page): https://app.lodgestory.com/crm/settings/bot-journeys/goals

[SCREENSHOT: bot-journeys-landing.png — journey list with search, create, and deploy controls]

What is Bot Journeys?

The problem it solves

Inbound messaging is a tyranny of small questions. Is the villa pet-friendly? What's the check-in time? Can I pay 50% now and the rest later? A small ops team can answer these one at a time for a while, but at scale the team burns out, customers wait longer, and the nights and weekends are a black hole where enquiries quietly die.

Bot Journeys turns those repeated paths into a diagram you draw once. A journey can ask the guest a series of questions, route them by answer, check a condition, call an external system, wait a day and follow up, hand off to a human, or all of those things. Every reply is instant, every path is consistent, and every hand-off to a human carries the full context forward.

What you get

  • Reply in under a second, 24/7. Journeys execute the moment a message arrives.
  • Qualify, route, and book. Twenty-one step types cover the conversational patterns you actually need: text, media, interactive buttons, free-text prompts, date prompts, conditions, delays, API calls, AI fallback, agent hand-off.
  • Test before you ship. Every journey has a built-in test chat so you can walk through flows without touching a real customer.
  • Edit safely in draft; go live deliberately. Journeys are either Draft (editable, no live traffic) or Live (deployed, receiving traffic). Deploying runs validation and transitions you from one to the other.
  • Reuse variables across journeys. Organisation-scoped variables let one journey read what another (or a campaign) wrote.
  • Measure what the bot achieved. A nested Goals feature lets you tag named milestones in a journey and track how often they're reached.
  • Works across channels. A single journey can drive WhatsApp, Web Chat, Email, and more. Lodgestory adapts interactive messages for each channel automatically — buttons on WhatsApp, clickable choices on Email, numbered lists on Instagram fallbacks.

How it's different

  • Built for real messaging, not a toy flow. Each step models what the channel actually sends: button counts, list section limits, call-to-action link headers, footer text. What you draw is what the customer receives.
  • AI integrated where it matters. Free-text answers can be validated with AI ("Does this look like a date?") rather than a regex. The AI Agent step runs a conversational agent with your knowledge and tools. API calls can optionally run responses through AI before using them.
  • Journey state is auditable. Every run creates a live session tied to the conversation. When the bot hands a chat to a human, the whole bot trail is visible in the inbox.

Customer scenarios

  • After-hours enquiry qualifier. A villa operator gets 200 inbound messages between 11 PM and 7 AM. A single journey qualifies each (dates, party size, budget), checks availability via an API step against the property system, quotes a price, and books a callback via a date prompt. Anything ambiguous hands to an AI Agent step. Come morning, agents see qualified enquiries — not 200 "hi, is the villa free?".
  • Post-booking concierge. A second journey triggers on booking confirmation. It sends a welcome message with check-in instructions, waits a day, sends a carousel of restaurant recommendations, and three days before check-out runs a satisfaction prompt.
  • Campaign reply handler. A broadcast goes out via WhatsApp templates. Every reply enters a bound journey that classifies the intent, tags the interested replies, and hands off to an agent for the ones that need a human.

How it fits with the rest of Lodgestory CRM

Bot Journeys feeds most of the product:

  • Connections — journeys are assigned per channel here.
  • Tickets — the Agent Transfer step creates a visible hand-off.
  • Campaigns — campaign replies can enter a journey for triage.
  • WhatsApp Templates — used by journeys to reopen past the 24-hour window.
  • AI Agents — the personas and tools consumed by the AI Agent step and the prompt validator.
  • Goals — nested analytics inside Bot Journeys.

[SCREENSHOT: bot-journeys-overview.png — annotated canvas with a journey mid-build]

Core concepts

TermWhat it means
JourneyA named conversation flow. Has a state (Draft or Live), belongs to your organisation, and can be assigned to one or more channels.
Step (node)A single block on the canvas — text, prompt, condition, delay, API call, agent transfer, and so on.
Connection (edge)A directed link between steps. Some steps carry a label on the link (e.g. success, timeout, fallback) that decides which path the journey takes.
Start stepThe fixed entry point, placed automatically on every new journey.
VariableA named slot that stores data during a run. System variables are read-only (name, phone, channel). Local variables live for one run. Campaign variables are organisation-wide and shared across journeys.
SessionOne run of a journey with one customer. Test sessions are sandboxes for your own QA; live sessions are real conversations.
GoalA named business outcome you track. Made up of milestones and trackers.
Channel assignmentThe link between a live journey and a channel. Each channel can have one live journey at a time.
Bot identityThe team member (with the Bot role) that a journey's replies are attributed to, so the inbox can tell bot replies from human ones.

Quick Start — your first journey in 5 minutes

Step 1 — Open Bot Journeys

Sidebar: Settings → Bot Journeys.

[SCREENSHOT: bot-journeys-qs-1-list.png]

Step 2 — Create a journey

Click Create Journey. Pick a name (up to 255 characters) and an optional description.

[SCREENSHOT: bot-journeys-qs-2-create.png]

You land on an empty canvas with a single Start step. The journey is in Draft.

Step 3 — Add a greeting

Drag a Text step from the palette. Click it, type your greeting into the property panel on the right (up to 4,096 characters). WhatsApp-style formatting is supported — bold, italic, strike-through, monospace.

[SCREENSHOT: bot-journeys-qs-3-text.png]

Step 4 — Connect Start to your Text step

Drag from Start's output handle to the Text step's input handle. A line connects them. The journey now says: when a user triggers this, send this message first.

[SCREENSHOT: bot-journeys-qs-4-connect.png]

Step 5 — Save

Click Save in the toolbar. The canvas confirms.

Step 6 — Test

Click Test. A chat panel opens on the right in a sandbox. Type "hi"; your greeting comes back.

[SCREENSHOT: bot-journeys-qs-6-test.png]

Step 7 — Deploy

Click Deploy. Validation runs — you need a Start step plus at least one other step, and every link has to point to an existing step. The journey flips to Live. Now open Connections, pick a channel, and assign the journey. Inbound messages on that channel start triggering your journey.

What's next

How it works

A journey is a diagram your customers walk through. When a message arrives on a channel with a journey assigned, Lodgestory starts a session from the Start step and walks the graph:

  1. Message steps send something (text, media, a location, or a call-to-action link) and immediately continue to the next step.
  2. Input steps send a prompt and wait for the customer's reply. The reply can fill a variable, match a button, or fail validation and retry.
  3. Logic steps route or pause without sending anything. Conditions pick a branch based on a variable. Delays wait a configured time before continuing. Wait-for-events pauses until an external signal arrives.
  4. Action steps do work beyond messaging. An API step calls an external system and can write part of the response into a variable. The AI Agent step runs a conversational AI turn with tools. The Agent Transfer step hands the chat to a human. The Goal step records a milestone.

Every run has its own variables, its own state, and its own trail of messages. Test runs never touch real customers. Live runs are tied to the real conversation in the inbox, and a human taking over (or a deliberate hand-off) cleanly ends the bot's role and preserves the context.

Journeys can be assigned to more than one channel at a time. Lodgestory adapts each message for the channel — interactive buttons are real buttons on WhatsApp, clickable choice chips on Web Chat, styled HTML on Email, and a numbered list on Instagram. Input steps accept either a tap on a button (where the channel supports it) or the typed label (where it doesn't), so the same journey works across channels without per-channel authoring.

Lifecycle of a live conversation

sequenceDiagram
    participant Guest
    participant Channel
    participant Lodgestory
    participant Journey as Journey engine
    participant Inbox

    Guest->>Channel: Sends a message
    Channel->>Lodgestory: Delivers the inbound
    Lodgestory->>Journey: Starts a new session (first message)
    Journey->>Journey: Walks the graph
    Journey-->>Lodgestory: Outbound reply
    Lodgestory->>Channel: Delivers the reply
    Channel-->>Guest: Message arrives
    Lodgestory->>Inbox: Updates the live inbox

Draft vs. Live

  • Draft — fully editable. No live traffic. You can iterate and test as much as you want.
  • Live — deployed. Inbound on assigned channels triggers it. Editing is disabled until you clone or move it back to Draft.

Moving a journey back to Draft ends any sessions currently running against it — deliberate, so old flows don't linger.

Features in depth

The canvas offers 21 step types, organised into five groups: Entry, Message, Input, Logic, and Action.

Entry: Start

The fixed entry point. Every journey has exactly one. Connect its output to whatever should run first.

Message steps

Send outbound content and continue.

Text

Sends a text message. Supports WhatsApp-style formatting: *bold*, _italic_, ~strike~, `monospace`. Interpolate variables with {{scope.name}} — missing variables leave the placeholder visible rather than error.

FieldLimit
TextUp to 4,096 characters
Variable (optional)Stores the sent message if you want to reference it later

Image, Video, Audio, Document

Send media with an optional caption (image, video, document) or standalone (audio). Upload the file from the canvas; Lodgestory stores it and embeds the URL in the message.

FieldLimit
Media linkPublic URL or uploaded via the builder
CaptionUp to 1,024 characters (image, video, document)

Location

Sends a map pin — latitude, longitude, and an optional name and address.

Call-to-Action URL

Sends an interactive message with a single button that opens a URL. Supports an optional header (text, image, video, or document), a body, and a footer.

FieldLimit
Header (text)Up to 60 characters
BodyUp to 1,024 characters
FooterUp to 60 characters
Button textUp to 20 characters
Button URLUp to 2,048 characters

Common uses: View booking, Open map, Pay now.

Input steps

Send a prompt and wait for the customer's reply.

Reply (interactive reply buttons)

Sends 1–3 quick-action buttons. The customer taps one; its payload becomes the input. On channels without native buttons, customers can type the button's label (plus any synonyms you add) to match.

FieldLimit
Header (optional)Text, image, video, or document
BodyUp to 1,024 characters
Footer (optional)Up to 60 characters
Buttons1–3

Quick Reply

Same idea as Reply but with up to 10 options.

List

Sends a structured list with sections and rows. Deeper than buttons — useful for menus and longer choice sets.

FieldLimit
SectionsUp to 10
Rows per sectionUp to 10
Row titleUp to 24 characters
Row descriptionUp to 72 characters

Prompt (free text with validation)

Asks an open question and captures the reply. Validation modes:

  • None — accepts any non-empty reply.
  • Regex — you supply the pattern.
  • Phone, Email, Number — built-in patterns.
  • AI-based — the journey uses AI to decide whether the reply passes your plain-language criterion (e.g. "Does this look like an arrival date?").
FieldDefaultLimit
QuestionUp to 4,096 characters
Retries00–5 or unlimited
Failure message (optional)Up to 4,096 characters
Timeout (optional)Off10 seconds to 60 minutes
Variable (optional)Stores the reply

Prompt Date

A specialised date prompt with format and range controls.

FieldNotes
QuestionUp to 4,096 characters
Date formatmm/dd/yyyy, dd/mm/yyyy, yyyy-mm-dd, yyyy/mm/dd, or lenient parsing
Date rangeAll, past including today, future including today, or a custom range
Excluded days of weekBlock specific weekdays (e.g. no Sundays)

Logic steps

Route or pause without sending a message.

Condition

Evaluates a set of AND/OR rules over variables and routes to one of several outputs. Operators include equals, not equals, greater-than, less-than, contains, starts-with, ends-with, matches-regex, exists, and not-exists.

Delay

Pauses the run for a configured duration, then resumes at the next step. Handy for "send welcome now, restaurant recommendations tomorrow morning" patterns.

Wait for Events

Pauses until a configured event arrives (e.g. an external signal or a goal hit). The session stays active but idle until the event.

Action steps

Do work beyond messaging.

API call

Makes an HTTP request to an external system and optionally extracts fields from the response into variables.

FieldNotes
URLVariable interpolation supported
MethodGET, POST, PUT, DELETE
HeadersKey–value, variables allowed
BodyObject or string, variables allowed
Response mappingExtract fields from the response into variables
TimeoutConfigurable per call (default 30 seconds)

Optional AI post-processing: run the raw response through AI with a prompt of your choice before assignment. Useful for "pick the relevant fact out of this JSON and phrase it as a sentence".

AI Agent

Runs a conversational AI with chat history, a system prompt, and attached tools. The session stays inside this step until the model produces a final reply or reaches a hand-off signal. Configured in AI Agents.

FieldNotes
AgentThe persona configured in AI Agents
Knowledge source (optional)A knowledge base for retrieval
Tools (optional)Tools from your organisation library
Loop capSafety limit on how many tool calls per turn (default 50)

Agent Transfer

Hands the conversation over to a human team member or a team. After this step fires the session moves to an agent-transferred state; the bot stops replying; the conversation becomes a live team member's responsibility.

FieldNotes
Transfer toA specific team member, or a team
Message (optional)A short note shown to the customer
Team (required when transferring to a team)The team that should pick the chat up

Goal

Records a milestone event in the Goals tree when the journey reaches a specific outcome.

Goals

Where to find it: Settings → Bot Journeys → Goals, or https://app.lodgestory.com/crm/settings/bot-journeys/goals.

Goals are the analytics layer for journeys. You define named business outcomes — "Qualified Enquiry", "Booking Confirmed", "Refund Resolved" — break them into milestones, and attach trackers (values to capture when a milestone fires). In a journey you drop Goal steps at the points you care about, and every run records an event in the Goals tree.

Setting up Goals

  1. Create a Goal with a descriptive name.
  2. Add milestones that represent intermediate checkpoints (e.g. Dates confirmed, Quote sent, Deposit paid).
  3. Attach trackers to each milestone — values to record when the milestone fires (e.g. budget, party size, nights).
  4. In your journey, drop Goal steps at the right moments and point each one at the appropriate milestone.

Goals and milestones are preserved once created — to retire one, stop referencing it in journeys.

The Goals detail page

Each goal has its own page with its milestones, trackers, and the event timeline. Events are filterable by test vs. live runs and by milestone, so you can see how often each checkpoint is reached and what the tracker values look like over time.

[SCREENSHOT: bot-journeys-goals-detail.png — goal with milestones and event timeline]

Variables, API Manager, and the Variables panel

Every journey has a floating Variables button on the canvas that opens the Variables panel.

  • System variables are read-only and auto-populated by the engine: customer name, phone, channel name, latest user input, and so on.
  • Local variables are journey-scoped and live for one run. Store things like captured dates, party size, or intent.
  • Campaign variables are organisation-wide and shared across journeys. Use them for values that more than one journey needs to read or write.

Variable types are String, Number, Date, and JSON. Names must be unique within a journey. Any text field supports variable interpolation using {{scope.name}} — for example {{var_system.user_name}} or {{var_local.party_size}}.

The API Manager button on the canvas lets you define a named API call once (URL, headers, body, response mapping, auth) and reference it from any API step. Useful when multiple steps hit the same endpoint.

Test chat and deployment

The Test button opens a sandboxed chat against the current draft. Messages render the way they would on WhatsApp — text, images, buttons, lists, location, call-to-action links. You can send typed messages, tap buttons, pick list items, and share locations. The current step name shows for debugging. Test runs never touch real customers.

The Deploy button moves a journey from Draft to Live. Validation runs first: every journey needs a Start step plus at least one other step, every link has to point to an existing step, and each step's configuration has to be valid. Once deployed, the journey is available to assign in Connections.

Undeploying moves a journey back to Draft and ends any currently-running sessions against it — a deliberate choice so old flows don't linger when you iterate.

There's no built-in version history. If you need to roll back an edit, keep a note of what the prior version looked like. Versioned journeys with a canary rollout are on the roadmap.

Running a journey on multiple channels

One journey can drive traffic on WhatsApp, Web Chat, Email, and Instagram at the same time. Lodgestory adapts each outbound message for the channel:

Step typeWhatsApp OfficialWhatsApp UnofficialEmailWeb ChatInstagramMessenger
TextPlain textPlain textHTMLTextPlain textPlain text
Image, Video, Audio, DocumentMedia with captionMedia with captionHTML with image or linkMedia with captionImage only (others degrade)Image only (others degrade)
LocationMap pinMap pinText summary with addressMap pinText summaryText summary
Reply buttons (1–3)Interactive buttonsInteractive buttonsStyled HTML buttonsInteractive buttonsQuick repliesQuick replies
Quick reply buttons (1–10)Interactive listInteractive listStyled HTML buttonsInteractive listQuick repliesQuick replies
ListInteractive listInteractive listHTML ordered listInteractive listNumbered textNumbered text
Call-to-Action URLInteractive buttonInteractive buttonStyled HTML buttonClickable chipText fallbackButton template

Input steps accept either a tap on a button (on channels that render them) or the typed label (on channels that don't). Add typed synonyms to a button to widen what counts as a match.

Two caveats worth knowing:

  • Headers and footers aren't supported on Instagram or Messenger. They're dropped when delivering to those channels.
  • Numbered fallbacks for lists on Instagram and Messenger — customers can type the number of the item they want, so add row synonyms like "1", "2" if you want the match to be seamless.

Roles and permissions

ActionAccount OwnerAdminUserBot
View journey listYesYesYesYes
Open a journey in the builderYesYesYes (read-only)No
Create a journeyYesYesNoNo
Edit a journeyYesYesNoNo
Delete a journeyYesYesNoNo
Deploy or undeployYesYesNoNo
Assign a journey to a channelYesYesNoNo
Create and run a test sessionYesYesYesNo
Create and edit GoalsYesYesYes (read)No

Cross-module workflows

A. Enquiry qualification → AI fallback → ticket escalation

A visitor messages WhatsApp. The assigned journey qualifies them (dates, party size). Unanswered questions drop into an AI Agent step. If the AI decides it can't help, the journey hits an Agent Transfer step that creates a visible hand-off in Tickets.

Modules: Bot Journeys → AI Agents → Home → Tickets.

flowchart LR
    A[Bot Journey<br>Reply + Prompt] -->|falls through| B[AI Agent step]
    B -->|can't answer| C[Agent Transfer]
    C --> D[Inbox<br>human team member]
    D --> E[Ticket]

Outcome: 24/7 first-response. Humans only see cases that genuinely need them.

B. Campaign broadcast → reply routing → conversion tracking

A broadcast goes out via Campaigns using an approved WhatsApp template. Replies enter a reply-handler journey that classifies intent, fires a Goal step on "interested" replies, and hands off the ones that need a human.

Modules: Campaigns → Bot Journeys → Goals → Home.

flowchart LR
    A[Campaign<br>template broadcast] --> B[Replies arrive]
    B --> C[Bot Journey<br>reply handler]
    C -->|interested| D[Goal<br>Conversion]
    D --> E[Agent Transfer]
    C -->|not interested| F[Polite ack]

Outcome: campaign ROI is measurable because Goals records the conversion tied to the specific campaign and contact.

C. Missed call → follow-up on WhatsApp

A prospect calls after hours. Voicemail is captured. A Bot Journey triggered by that signal sends a WhatsApp to the caller, captures their preferred callback time with a Prompt Date step, and schedules the slot in an outbound calling campaign.

Modules (cross-product): Lodgestory Voice → Bot Journeys → Lodgestory Voice Outbound.

Limits a user will run into

Message limits

LimitValue
Text bodyUp to 4,096 characters
Image, video, document captionUp to 1,024 characters
Call-to-Action header textUp to 60 characters
Call-to-Action bodyUp to 1,024 characters
Call-to-Action footerUp to 60 characters
Call-to-Action button textUp to 20 characters
Call-to-Action button URLUp to 2,048 characters
Reply bodyUp to 1,024 characters
Quick Reply bodyUp to 1,024 characters
Prompt questionUp to 4,096 characters

Input limits

LimitValue
Reply buttons1–3
Quick Reply buttons1–10
List sectionsUp to 10
Rows per sectionUp to 10
Row title / descriptionUp to 24 / 72 characters
Prompt retries0–5 or unlimited
Prompt timeout10 seconds to 60 minutes

Structural limits

LimitValue
Live journeys per channel1
Steps per journeyNo hard cap; browser performance degrades on very large journeys.
Variables per journeyNo cap; names must be unique.
Journeys per organisationPlan-tier based.

Timeouts

StepDefaultConfigurable
API step30 secondsYes
Prompt (inactivity timeout)Off10 seconds to 60 minutes
DelayAs configuredAny duration

Errors and FAQ

Errors you might see

MessageWhat it meansWhat to do
Journey name already exists in organisationAnother journey has the same name.Rename one or delete the duplicate.
Variable name already exists in journeyDuplicate variable.Use a different name.
System variables cannot be modifiedYou tried to edit a read-only system variable.Use a local or campaign variable instead.
Cannot delete the Start stepThe Start step is fixed.Create a new journey if you need a different entry.
Invalid journey data structureThe save rejected a malformed update.Reload the builder and retry.
Cannot deploy journey with no other stepsA journey with only a Start step can't go live.Add at least one message, input, or action step.
Journey not foundThe journey was deleted or the URL is wrong.Return to the list and open the journey again.
Variable not foundA variable was removed before the edit landed.Re-open the Variables panel and retry.
Step not foundYour canvas is out of sync with a server-side change.Reload the builder.
Connection not foundA link was removed elsewhere.Reload.

FAQ

Why isn't my journey triggering even though I deployed it?
Check, in order:

  1. The journey is deployed — the badge says Live.
  2. The journey is assigned to the channel the message arrived on. Every channel can only hold one live journey at a time; if the wrong one is assigned, it wins.
  3. No other routing rule (a workflow lifecycle stage, for example) is intercepting the message first.

Why do variables show up as {{var_local.name}} in the customer's message?
A typo, or the variable was never set by an earlier step. Missing variables are left as-is rather than causing an error. Open the Variables panel, confirm the name, and check that an earlier step fills it.

Why does the AI Agent step keep looping without resolving?
Usually the system prompt lacks a clear exit condition. Make it explicit — for example, "End your reply with FINISHED once the guest is satisfied." Keep an eye on the tool loop cap too.

Deploying fails with a validation error but I can't see which step.
Open each step's property panel in turn. The validator runs per step — a too-long body, too many buttons, or a missing required field is the usual culprit.

Why doesn't an undeployed journey keep running existing conversations?
Deliberate — you don't want a deprecated flow running alongside a new one. Iterate in Draft and deploy once, or rely on an Agent Transfer step to move stuck conversations to humans.

Can one message trigger two different journeys at once?
No. Each channel has one live journey. The first journey wins.

Is the AI response deterministic?
No. AI outputs can vary. Where you need determinism — validating a specific format, picking an exact branch — use regex validation or a Condition step rather than AI.

My bot was replying and then went quiet — what's going on?
The most common cause is a human team member replied to the conversation recently. Lodgestory treats a chat as agent-handled for three days after the last human reply, to avoid the bot talking over a live human conversation. After three days without a human message, the bot can pick up again. If you need to bring the bot back sooner, an admin can reset the conversation manually.

Other causes to check:

  • A prior bot run ended in an agent-transferred state and is waiting out its auto-close timer. Forcing the transfer closed will let the next message start a fresh bot session.
  • The prior run ended in an error state that wasn't cleared. Forcing the old session closed will let the next message start fresh.
  • The conversation was deep inside a journey step that was deleted during a redeploy. Close the old session and the next message starts clean.

If a reply looks like it was sent but didn't arrive, open the chat and hover over the most recent message — the delivery indicator will show whether the provider refused the delivery (outside a messaging window, contact not opted in, rate limit reached, template paused) and why. Those are channel-policy issues rather than journey issues.

User-resolvable checklist

  1. Channel connected? If the channel card shows Needs Reconnect, inbound and outbound are both stuck. Reconnect first.
  2. Journey Live? A Draft journey doesn't receive traffic.
  3. Journey assigned to the channel? One live journey per channel.
  4. Message format matches? An interactive button step won't accept an unrelated free-text reply unless you've added synonyms.
  5. Inside the WhatsApp 24-hour window? Free-text outbound only works for 24 hours after the last customer message. Use an approved template step for outbound outside that window.
  6. Contact opted in? The provider may silently drop messages to contacts that haven't opted in.
  7. Works in the test panel? If yes, the issue is routing (channel or assignment). If no, the issue is the journey itself.

API

A partner API is available for creating, editing, deploying, and assigning journeys, as well as for managing variables and Goals. Contact your account team for access, and see the partner portal for the full request reference.

Related modules and next steps

  • AI Agents — configure the personas and tools used by the AI Agent step and the AI-based prompt validator.
  • Connections — where you assign a deployed journey to a channel.
  • WhatsApp Templates — templates let journeys reopen the 24-hour window.
  • Tickets — where Agent Transfer hand-offs land.
  • Campaigns — broadcasts whose replies flow into journey reply handlers.
  • Goals — the nested analytics layer above.