Scheduled Messages
Schedule a one-time WhatsApp message to a lead at a future date and time — via the Chrome Extension (free-form text) or the WhatsApp API (approved template), with optional automatic retries.
Overview
Scheduled Messages let you queue a one-time WhatsApp message to a specific lead at a chosen future date and time. Unlike Auto Followups, which run a multi-step sequence, each scheduled message is a single, independent send. You can schedule up to 1 year in advance and have up to 5 pending messages per lead at any time.
You can send the message in three ways:
- Approved template (WhatsApp API) — an approved WhatsApp template message delivered by Kraya's WhatsApp Business API connection. Useful when you need to reach a lead outside the 24-hour customer service window, because template messages can be sent even after the conversation window has closed.
- Free text (WhatsApp API) — a plain, personalised message delivered by Kraya's servers on your WhatsApp API number, without needing a template approved by Meta first. WhatsApp only permits this while the lead's 24-hour conversation window is open, so it is best used for a quick follow-up during an active conversation.
- Free text (Extension) — a free-form text message delivered by the Kraya WhatsApp Extension from your browser, just like a normal extension auto-followup. If your organization uses a Hosted WhatsApp Account (a hosted session managed from the Dashboard), Extension messages are instead sent server-side by Kraya at their scheduled time — you do not need the browser or the extension open. See How it works below.
What you can do
- Schedule a one-time message to any lead, up to a year in advance
- Choose between an approved template on your WhatsApp API number, free text on your WhatsApp API number, or free text through the Chrome Extension
- Send a personalised message on a WhatsApp API number without waiting for Meta to approve a template first, as long as the lead has messaged you in the last 24 hours
- Personalize free-text messages with placeholders such as
{lead_name},{lead_first_name},{email},{user_name},{org_name}, and your organization's custom attributes - Fill in template variables for approved template messages before scheduling
- For approved template messages, optionally enable automatic retries (1, 2, 3, or 5 attempts, spaced 8, 12, 16, 24, or 48 hours apart) if a send fails
- Edit or cancel any pending message before it goes out
- See up to 5 pending messages directly in the CRM column, with the soonest one shown inline
- Open a full history of past scheduled messages (sent, failed, cancelled, retrying) for any lead
How it works
- Every lead row in the CRM has a Scheduled Message column. From there you click + Schedule to open the Schedule Messages modal.
- After you save, the message appears in the column as "DD MMM, HH:MM AM | Template or message label" with Edit and Cancel buttons. The earliest pending message is shown inline; additional pending messages are reachable through a + N more link that opens a popover.
- When the scheduled time arrives, Kraya sends the message:
- Extension messages (browser extension) — if you send from the Chrome Extension, the message is delivered by your Kraya WhatsApp Extension during its next interval check. The extension must be open, you must be on the primary WhatsApp session, and the auto-follow-up switches must be on (same conditions as auto-followup messages).
- Extension messages (Hosted WhatsApp Account) — if your organization runs a hosted WhatsApp session, Extension-mode scheduled messages are sent server-side by Kraya, exactly like hosted-session auto-followups. The browser and extension do not need to be open. The message goes out on the first check at or after its scheduled time, as long as the hosted session is running and the auto-follow-up gates are satisfied (see below). This is the same server automation described in Hosted WhatsApp Accounts.
- Approved template messages (WhatsApp API) are sent by Kraya's servers. They respect the same business-hours window and per-lead auto-responder switch as your auto-followups.
- Free text messages (WhatsApp API) are also sent by Kraya's servers and respect the same business-hours and auto-responder switches. In addition, WhatsApp only allows a plain message while the lead's 24-hour conversation window is open — that is, the lead has sent you a message within the last 24 hours. Kraya checks this at the moment of sending, not when you schedule. If the window is closed at that moment, the message is marked Failed with the reason "No open 24-hour conversation window" and is not retried.
- Personalisation in free-text messages is filled in when the message is sent, not when you schedule it. If the lead's name or any attribute changes in between, the message goes out with the newer value.
- Kraya never sends the same scheduled message twice. When both a hosted session and the Chrome Extension are active for the same organization, the server claims the message first and the extension automatically skips it.
- After the message is sent, its status changes to Sent and it disappears from the column. You can still see it in the Scheduled Message History modal (clock icon).
- If a WhatsApp API send fails and you enabled retries, Kraya schedules another attempt after the configured gap and marks the message Retrying. If retries are off, or all attempts are exhausted, the message is marked Failed with the reason.
- The column refreshes in real time when a scheduled message is created, edited, cancelled, or sent — including changes made from another device or by a teammate.
Step-by-step guide
Scheduling a message
-
In the CRM page, locate the lead and find the Scheduled Message column on that row.
-
Click + Schedule. The Schedule Messages modal opens.
-
Choose Send via:
- Approved template (WhatsApp API) — sends an approved template message from your WhatsApp API number.
- Free text (WhatsApp API) — sends a plain, personalised message from your WhatsApp API number. An information icon next to this option explains the 24-hour condition; hover it to read the full note.
- Free text (Extension) — sends a plain text message from your WhatsApp Web extension.
Both WhatsApp API options are greyed out if no active WhatsApp Business Account is connected to your organization; the tooltip reads "Connect a WhatsApp API account to use this option."
-
If you picked Approved template (WhatsApp API):
- Click Choose a template and select an approved template from your WhatsApp Business Account. Use the eye icon next to the selected template to preview it.
- Fill in each Template Variable that the template body uses. Every variable is required — the modal shows "N variables still need values before scheduling" if any are empty when you try to save.
-
If you picked either Free text option:
- Type your message in the Content box (up to 4,096 characters; the counter is shown below the box).
- Use the placeholder pills below the box to insert personalization tokens such as
{lead_name}or{org_name}at the cursor position. Click Show More to see all available placeholders, including your organization's custom attributes. - For Free text (WhatsApp API), remember the message will only go out if the lead has messaged you within the last 24 hours at the scheduled time.
-
Pick a Schedule for date and time. The picker uses your organization's timezone and must be a future moment within the next 1 year.
-
(Approved template only) If you want failed sends to retry automatically, tick Retry failed messages and choose:
- Retry Attempts: 1, 2, 3, or 5 times
- Retry After: 8, 12, 16, 24, or 48 hours between attempts The helper text "Retries will stop automatically if the user responds" describes the safety stop.
-
Click Schedule Message. The button shows Scheduling… while the request is in flight, then closes the modal on success. The new message appears in the lead's Scheduled Message column.
Editing a pending message
- In the Scheduled Message column, click the Edit (pencil) button on the message you want to change.
- The same Schedule Messages modal opens prefilled with the existing values, with the title Edit Scheduled Message.
- Change any field — mode, template or content, date and time, retry settings — and click Schedule Message to save.
Editing is only allowed while a message's status is Pending or Retrying. Once it has been sent, cancelled, or marked failed, the Edit button is no longer offered.
Cancelling a pending message
- In the Scheduled Message column, click the Cancel (cross) button on the message you want to stop.
- The message moves to Cancelled status and disappears from the column. You can still see it in the History modal, along with who cancelled it and when.
Cancelling is only allowed while the message is Pending or Retrying.
Viewing the history
- In the Scheduled Message column for any lead, click the clock icon.
- The Scheduled Message History modal opens, listing every scheduled message ever created for that lead, sorted by the scheduled date with the most recent first.
- Columns: Status, Scheduled For, Message (template or text content), Mode, Sent At, Created By.
- Hover a row's status icon to see the failure reason if any. Hover the Message cell to see the full content in a tooltip when it is truncated.
- Scroll down to load more rows (10 per page). If the lead has no scheduled messages ever, the modal shows "No scheduled messages yet for this lead." with an illustration.
Settings and configuration
There are no separate settings for Scheduled Messages — the feature reuses your existing Auto Follow-Up configuration:
- Auto Follow-Up business hours (set in the extension's Global Settings modal) — WhatsApp API messages are only sent while you are inside business hours. Outside business hours, due messages are deferred to the next eligible check and do not count as failures.
- Auto Follow-Up master switch — must be on, both at the lead level and globally, for any scheduled message to send.
- Active WhatsApp Business Account — required for both WhatsApp API options. If your organization has no active account, both are disabled in the modal.
- The lead's 24-hour conversation window — required for Free text (WhatsApp API) only. This is not a Kraya setting; it is WhatsApp's own rule. The window opens each time the lead sends you a message and stays open for 24 hours from that message.
Limits and quotas
- Up to 5 pending scheduled messages per lead at a time. When you hit the limit, the column shows a "Limit reached (5/5)" pill instead of + Schedule, with a tooltip "Cancel an existing pending message before scheduling a new one." Cancelling, or letting a pending message send, frees up a slot.
- Messages can be scheduled at most 1 year in the future.
- Free-text content is capped at 4,096 characters, for both the Extension and the WhatsApp API options.
- Retries are available for approved template messages only: 0 (off), 1, 2, 3, or 5 attempts; spaced 8, 12, 16, 24, or 48 hours apart. Neither free-text option offers retries.
- Free text (WhatsApp API) requires the lead to have messaged you within the last 24 hours at the moment of sending.
Common edge cases
-
You hit the 5-pending limit The "+ Schedule" link is replaced by "Limit reached (5/5)". Cancel one of the existing pending messages from the column, or wait for it to send, before scheduling another.
-
WhatsApp API options are greyed out Your organization has no active WhatsApp Business Account. Connect one from Dashboard → Connect WhatsApp, then reopen the modal. This affects both Approved template (WhatsApp API) and Free text (WhatsApp API).
-
The lead's 24-hour window closes before a free-text WhatsApp API message is due The message is marked Failed with the reason "No open 24-hour conversation window" and is not retried. Either send an approved template instead, which can go out at any time, or wait for the lead to message you again and schedule a new one.
-
The 24-hour window is open when you schedule but closed when the message is due Only the moment of sending counts. A window that is open today can be closed by tomorrow morning if the lead does not write again, so a message scheduled far ahead is more likely to fail. For anything more than a few hours out, an approved template is the safer choice.
-
A free-text WhatsApp API message is delayed by business hours and then fails If the send time falls outside business hours, the message waits for the next eligible check. If the lead's 24-hour window expires while it is waiting, it then fails with "No open 24-hour conversation window". Schedule free-text messages inside your business hours to avoid this.
-
Selected template is unapproved or removed before send The scheduled message fails with the reason "Template is no longer approved" or "Template not found." Pick a different template and reschedule.
-
WhatsApp Business Account becomes inactive before send The scheduled message fails with "WhatsApp account is inactive." Reconnect the account, then reschedule.
-
Scheduled time falls outside business hours (WhatsApp API) The message is not marked failed — it is deferred and re-attempted on the next eligible check once business hours resume. Status stays Pending.
-
Per-lead auto-responder is off WhatsApp API messages will not send while the lead's auto-responder switch is off; they remain pending. Turn the lead-level switch back on to resume.
-
Extension is offline or WhatsApp Web tab is closed (Extension mode, browser extension) The message stays Pending until the extension comes back online and the next interval check picks it up. There is no automatic timeout. Exception: if the lead's number is on a Hosted WhatsApp Account, the message is sent server-side and does not need the browser open at all.
-
Hosted session is not running (Hosted WhatsApp Account) Server-side Extension sends require the hosted session to be in a running state. If the session is logged out or disconnected, the message stays Pending and is picked up on the first check after the session comes back online. Reconnect the session from Dashboard → Hosted WhatsApp Accounts.
-
Editing a message that has already started sending Edit is hidden once the status moves out of Pending or Retrying. If you do not see Edit or Cancel, the message has already been picked up for delivery, was sent, was cancelled, or has been marked failed.
-
Lead is deleted before send The scheduled message fails with "Lead not found."
-
You schedule a date in the past by accident The form blocks save and the date/time field shows an inline error. Pick a future moment in your organization's timezone.
-
You try to schedule a 6th message while 5 are pending The save is rejected with the message "This lead already has 5 pending scheduled messages. Please cancel an existing one before scheduling another."
-
Template variable left blank The save is blocked and a red helper line appears: "N variables still need values before scheduling." Fill in every variable that the template body uses.
Troubleshooting
A scheduled message never sent and is still Pending past its scheduled time
- Cause (WhatsApp API): outside business hours, per-lead auto-responder switch off, or no active WhatsApp Business Account.
- Cause (Extension — browser extension): extension offline, WhatsApp Web tab closed, not on the primary WhatsApp session, or the auto-follow-up master switch is off.
- Cause (Extension — Hosted WhatsApp Account): hosted session is not running, outside business hours, the global or per-lead auto-follow-up switch is off, or the organization is disabled. The server does not need the browser here, but it honors the same gates.
- Fix: Check business hours and both auto-follow-up switches (lead-level and global). For a browser extension, keep WhatsApp Web open on the primary session and confirm the extension is active. For a hosted session, confirm the session is running from Dashboard → Hosted WhatsApp Accounts. The message will pick up on the next check.
A WhatsApp API message went to Failed
- Cause: Open the History modal and hover the status icon to read the failure reason. Common ones:
- No open 24-hour conversation window — free-text only. The lead had not messaged you in the 24 hours before the send time, so WhatsApp did not permit a plain message.
- Template is no longer approved — the template was removed or unapproved in Meta after you scheduled.
- WhatsApp account is inactive — the WhatsApp Business Account is no longer connected or has been disconnected by Meta.
- Lead not found — the lead was deleted.
- Fix: Fix the underlying issue (re-approve template, reconnect account, restore lead), then reschedule. For a closed conversation window, either send an approved template instead or wait until the lead messages you again.
My free-text WhatsApp API message failed even though the lead replied recently
- Cause: The window is measured from the lead's last incoming message and lasts exactly 24 hours. A reply that is slightly over 24 hours old no longer counts. Your own outgoing messages do not reopen the window.
- Fix: Check when the lead last messaged you in the conversation view. If it is more than 24 hours ago, use an approved template instead.
A failed WhatsApp API message does not retry
- Cause: Retries were not enabled when you scheduled the message, or the retry budget has been exhausted.
- Fix: Schedule a new message with retries enabled. Note: retries also stop automatically if the lead replies in between attempts — this is by design, not a bug.
I cannot find the Edit or Cancel buttons on a message I scheduled
- Cause: The message has moved out of Pending or Retrying status (it has been sent, cancelled, or marked failed beyond retries).
- Fix: Open the History modal to confirm its current status. If it was sent, no action is needed. If it failed, schedule a new one.
The "+ Schedule" link is missing on a lead
- Cause: That lead already has 5 pending scheduled messages, so the link is replaced by the "Limit reached (5/5)" pill.
- Fix: Cancel a pending message from the column, or wait for one to send, then schedule the next.
An Extension scheduled message keeps showing Pending even though business hours are on
- Cause: WhatsApp Web tab is not open, you are not on the primary WhatsApp session, or the auto-follow-up master switch in the extension's Global Settings is off.
- Fix: Open WhatsApp Web, make sure the extension is the primary session, and turn on the Auto Follow-up master switch. The extension will pick up the message on its next interval check.
FAQs
-
Can I send a WhatsApp template message even if the 24-hour conversation window with the lead is closed? Yes. Approved template (WhatsApp API) messages can be sent to any opted-in number regardless of the 24-hour window. This is the main reason to choose a template over free text. Free text (WhatsApp API) is the opposite — it only sends while the window is open.
-
What is the difference between the two WhatsApp API options? Approved template requires a template that Meta has approved in advance, but it can be sent at any time. Free text needs no template at all, so you can write the message yourself and schedule it immediately, but it only sends if the lead has messaged you within the last 24 hours. Use a template when reaching out cold or scheduling far ahead; use free text for a quick, personal follow-up during an active conversation.
-
Do I need a Meta-approved template to schedule a plain message on my WhatsApp API number? No, not any more. Choose Free text (WhatsApp API) and type the message directly. The trade-off is the 24-hour condition described above.
-
Why can't I turn on retries for a free-text message? Retries only make sense for approved templates, which can be sent at any time. A free-text message either has an open conversation window or it does not, and trying again hours later would usually meet the same closed window. Approved template messages keep their retry settings unchanged.
-
When are placeholders like the lead's first name filled in? For free-text messages, at the moment the message is sent. If you correct a lead's name after scheduling, the message goes out with the corrected name.
-
What is the difference between a Scheduled Message and an Auto Followup sequence? An Auto Followup is a multi-step sequence assigned to a lead — the messages and timing are defined once in the sequence and reused across many leads. A Scheduled Message is a one-time send for a single lead, scheduled ad hoc. The two run independently and can both be active on the same lead at the same time.
-
Can I schedule more than 5 messages for the same lead? Not at the same time. The limit is 5 pending per lead. As pending messages send out or are cancelled, slots free up and you can schedule new ones. Sent and cancelled messages do not count against the limit.
-
Will Extension scheduled messages send if my browser is closed? It depends on how your WhatsApp number is connected. If you send from the Chrome Extension, no — the message needs WhatsApp Web open with the Kraya extension active, and it stays Pending until you reopen it. If your number is a Hosted WhatsApp Account, yes — Kraya sends Extension-mode scheduled messages server-side, so the browser does not need to be open. The hosted session just needs to be running and the auto-follow-up gates satisfied.
-
Will WhatsApp API scheduled messages send if my browser is closed? Yes. WhatsApp API messages are sent by Kraya's servers, so the browser does not need to be open. They still require the auto-follow-up switches to be on and the send time to fall inside business hours.
-
What happens if the lead replies before my scheduled message goes out? The scheduled message still sends at the configured time. For WhatsApp API messages with retries enabled, retries will not continue after a lead reply.
-
Can I see who scheduled or cancelled a message? Yes. The History modal shows Created By for every row, and the cancellation timestamp and user are recorded internally as well.
-
Can a teammate edit or cancel a message I scheduled? Yes, as long as the message is still Pending or Retrying and the lead is in your shared organization. The column updates in real time across devices.
-
Can I schedule a message more than a year in advance? No. The date picker blocks dates beyond 1 year from today.
Related features
- Auto Followups — multi-step automated sequences; scheduled messages run independently but share the same business-hours and auto-responder switches
- Chrome extension — sends Extension-mode scheduled messages during its auto-follow-up interval
- Hosted WhatsApp Accounts — hosted sessions send Extension-mode scheduled messages server-side, without the browser open
- WhatsApp API integration — WhatsApp Business Account, approved templates, and the 24-hour customer service window
- Dashboard — the CRM page that hosts the Scheduled Message column