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 tiers | All paid tiers. |
| Who can configure | Account Owners and Admins. Users have read-only access. |
| Channels | Fully supported: WhatsApp Official, WhatsApp Unofficial, Email, and Web Chat. Instagram and Facebook Messenger are supported with graceful fallbacks for interactive elements. |
| Integrations | Works 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 limits | One 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. |
| API | Yes — 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
| Term | What it means |
|---|---|
| Journey | A 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 step | The fixed entry point, placed automatically on every new journey. |
| Variable | A 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. |
| Session | One run of a journey with one customer. Test sessions are sandboxes for your own QA; live sessions are real conversations. |
| Goal | A named business outcome you track. Made up of milestones and trackers. |
| Channel assignment | The link between a live journey and a channel. Each channel can have one live journey at a time. |
| Bot identity | The 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
- Go deeper on specific step types → Features in depth
- Set up Goals to measure outcomes → Goals
- Hand off to a team member cleanly → Agent Transfer
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:
- Message steps send something (text, media, a location, or a call-to-action link) and immediately continue to the next step.
- 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.
- 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.
- 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.
| Field | Limit |
|---|---|
| Text | Up 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.
| Field | Limit |
|---|---|
| Media link | Public URL or uploaded via the builder |
| Caption | Up 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.
| Field | Limit |
|---|---|
| Header (text) | Up to 60 characters |
| Body | Up to 1,024 characters |
| Footer | Up to 60 characters |
| Button text | Up to 20 characters |
| Button URL | Up 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.
| Field | Limit |
|---|---|
| Header (optional) | Text, image, video, or document |
| Body | Up to 1,024 characters |
| Footer (optional) | Up to 60 characters |
| Buttons | 1–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.
| Field | Limit |
|---|---|
| Sections | Up to 10 |
| Rows per section | Up to 10 |
| Row title | Up to 24 characters |
| Row description | Up 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?").
| Field | Default | Limit |
|---|---|---|
| Question | — | Up to 4,096 characters |
| Retries | 0 | 0–5 or unlimited |
| Failure message (optional) | — | Up to 4,096 characters |
| Timeout (optional) | Off | 10 seconds to 60 minutes |
| Variable (optional) | — | Stores the reply |
Prompt Date
A specialised date prompt with format and range controls.
| Field | Notes |
|---|---|
| Question | Up to 4,096 characters |
| Date format | mm/dd/yyyy, dd/mm/yyyy, yyyy-mm-dd, yyyy/mm/dd, or lenient parsing |
| Date range | All, past including today, future including today, or a custom range |
| Excluded days of week | Block 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.
| Field | Notes |
|---|---|
| URL | Variable interpolation supported |
| Method | GET, POST, PUT, DELETE |
| Headers | Key–value, variables allowed |
| Body | Object or string, variables allowed |
| Response mapping | Extract fields from the response into variables |
| Timeout | Configurable 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.
| Field | Notes |
|---|---|
| Agent | The persona configured in AI Agents |
| Knowledge source (optional) | A knowledge base for retrieval |
| Tools (optional) | Tools from your organisation library |
| Loop cap | Safety 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.
| Field | Notes |
|---|---|
| Transfer to | A 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
- Create a Goal with a descriptive name.
- Add milestones that represent intermediate checkpoints (e.g. Dates confirmed, Quote sent, Deposit paid).
- Attach trackers to each milestone — values to record when the milestone fires (e.g. budget, party size, nights).
- 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 type | WhatsApp Official | WhatsApp Unofficial | Web Chat | Messenger | ||
|---|---|---|---|---|---|---|
| Text | Plain text | Plain text | HTML | Text | Plain text | Plain text |
| Image, Video, Audio, Document | Media with caption | Media with caption | HTML with image or link | Media with caption | Image only (others degrade) | Image only (others degrade) |
| Location | Map pin | Map pin | Text summary with address | Map pin | Text summary | Text summary |
| Reply buttons (1–3) | Interactive buttons | Interactive buttons | Styled HTML buttons | Interactive buttons | Quick replies | Quick replies |
| Quick reply buttons (1–10) | Interactive list | Interactive list | Styled HTML buttons | Interactive list | Quick replies | Quick replies |
| List | Interactive list | Interactive list | HTML ordered list | Interactive list | Numbered text | Numbered text |
| Call-to-Action URL | Interactive button | Interactive button | Styled HTML button | Clickable chip | Text fallback | Button 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
| Action | Account Owner | Admin | User | Bot |
|---|---|---|---|---|
| View journey list | Yes | Yes | Yes | Yes |
| Open a journey in the builder | Yes | Yes | Yes (read-only) | No |
| Create a journey | Yes | Yes | No | No |
| Edit a journey | Yes | Yes | No | No |
| Delete a journey | Yes | Yes | No | No |
| Deploy or undeploy | Yes | Yes | No | No |
| Assign a journey to a channel | Yes | Yes | No | No |
| Create and run a test session | Yes | Yes | Yes | No |
| Create and edit Goals | Yes | Yes | Yes (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
| Limit | Value |
|---|---|
| Text body | Up to 4,096 characters |
| Image, video, document caption | Up to 1,024 characters |
| Call-to-Action header text | Up to 60 characters |
| Call-to-Action body | Up to 1,024 characters |
| Call-to-Action footer | Up to 60 characters |
| Call-to-Action button text | Up to 20 characters |
| Call-to-Action button URL | Up to 2,048 characters |
| Reply body | Up to 1,024 characters |
| Quick Reply body | Up to 1,024 characters |
| Prompt question | Up to 4,096 characters |
Input limits
| Limit | Value |
|---|---|
| Reply buttons | 1–3 |
| Quick Reply buttons | 1–10 |
| List sections | Up to 10 |
| Rows per section | Up to 10 |
| Row title / description | Up to 24 / 72 characters |
| Prompt retries | 0–5 or unlimited |
| Prompt timeout | 10 seconds to 60 minutes |
Structural limits
| Limit | Value |
|---|---|
| Live journeys per channel | 1 |
| Steps per journey | No hard cap; browser performance degrades on very large journeys. |
| Variables per journey | No cap; names must be unique. |
| Journeys per organisation | Plan-tier based. |
Timeouts
| Step | Default | Configurable |
|---|---|---|
| API step | 30 seconds | Yes |
| Prompt (inactivity timeout) | Off | 10 seconds to 60 minutes |
| Delay | As configured | Any duration |
Errors and FAQ
Errors you might see
| Message | What it means | What to do |
|---|---|---|
| Journey name already exists in organisation | Another journey has the same name. | Rename one or delete the duplicate. |
| Variable name already exists in journey | Duplicate variable. | Use a different name. |
| System variables cannot be modified | You tried to edit a read-only system variable. | Use a local or campaign variable instead. |
| Cannot delete the Start step | The Start step is fixed. | Create a new journey if you need a different entry. |
| Invalid journey data structure | The save rejected a malformed update. | Reload the builder and retry. |
| Cannot deploy journey with no other steps | A journey with only a Start step can't go live. | Add at least one message, input, or action step. |
| Journey not found | The journey was deleted or the URL is wrong. | Return to the list and open the journey again. |
| Variable not found | A variable was removed before the edit landed. | Re-open the Variables panel and retry. |
| Step not found | Your canvas is out of sync with a server-side change. | Reload the builder. |
| Connection not found | A link was removed elsewhere. | Reload. |
FAQ
Why isn't my journey triggering even though I deployed it?
Check, in order:
- The journey is deployed — the badge says Live.
- 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.
- 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
- Channel connected? If the channel card shows Needs Reconnect, inbound and outbound are both stuck. Reconnect first.
- Journey Live? A Draft journey doesn't receive traffic.
- Journey assigned to the channel? One live journey per channel.
- Message format matches? An interactive button step won't accept an unrelated free-text reply unless you've added synonyms.
- 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.
- Contact opted in? The provider may silently drop messages to contacts that haven't opted in.
- 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.
Updated about 4 hours ago