What scheduled messages are
Scheduled messages let you send a message through the API today while it is only delivered to the recipient at a date and time you choose. Just include thesend_at field in the send request and Zapster handles the rest.
This works for any message type: text, media (image, audio, video, document), templates, and messages with buttons. You do not need to build cron jobs, queues, or timers in your system. Zapster stores the message and guarantees the send at the right time.
In practice, it is like scheduling a message inside WhatsApp, except through the API and with full control over what happens at each step.
Use cases
- Payment reminders: schedule a charge for the invoice due date.
- Sales follow-ups: send a message 2 days after the first contact with a lead.
- Time-boxed campaigns: prepare everything on Monday and spread the sends across the week.
- Appointment confirmations: remind the patient 1 day before the appointment.
- Customer onboarding: send usage tips in the first days after sign-up.
- Satisfaction surveys: trigger an NPS a few days after a purchase or support interaction.
How it works
The flow is straightforward:- You send a
POST /v1/wa/messageswith thesend_atfield set to the desired date and time. - Zapster stores the message and creates an internal schedule.
- At the defined time, the message is sent automatically by the configured instance.
failed and the errors field carries the details of the problem.
Message lifecycle
Every scheduled message goes through the following states:Once the message reaches the
sent status, the system also records the delivered_at (delivery confirmed on the device) and read_at (recipient read the message) timestamps. But the status stays sent: delivery and read are tracked only through timestamps.Limits per plan
Explaining each row:
- Concurrent scheduled: the number of messages with
scheduledstatus that can exist at the same time in your account. If you have 10 pending messages on the Essential plan, you need to wait for one to be sent (or cancel one) before scheduling another. - Maximum lead time: how far into the future you can schedule. On Essential, up to 7 days. On Pro, up to 1 year.
- History retention: how long you can query already-sent messages. On Essential, only the last 24 hours are available for lookup.
Compatibility
It works with both official (WABA) and unofficial (QR code) instances. You do not need to change anything in your instance configuration to use scheduling.About time zones
Thesend_at field accepts dates in the ISO 8601 format, which includes time zone information. In practice, you have two options:
- Send with an explicit time zone:
"2026-03-30T09:00:00-03:00"(Brasília time). - Send in UTC:
"2026-03-30T12:00:00Z".