Skip to main content
A follow-up reminds a contact who has not done what was expected (paid, sent a document, confirmed a visit): Shortext sends a reminder on the conversation, at regular intervals, until the contact replies or the maximum is reached. The agent sets follow-ups itself when a conversation calls for one; your systems can set them too. Reading follow-ups and their types needs a key with View messages; creating and changing them needs Send messages.

Follow-up types

A type sets the rhythm of its follow-ups. /follow-up-types:
Changes apply to the scheduled follow-ups from their next round. Deleting a type does not cancel its scheduled follow-ups: set active to false to stop new ones only.

Set a follow-up

POST /follow-ups on a conversation:
If a follow-up of the same type is already scheduled on the conversation, that one is returned instead of a second one.

When follow-ups are sent

  • Each follow-up uses the interval and the maximum of the type, or of its override for the sender of the conversation.
  • The contact replies: follow-ups stop (resolved, closed by customer_replied).
  • The maximum is reached without a reply: exhausted.
  • A send is refused by the channel: it is not counted as a follow-up and is retried at the next interval; after as many failures as the maximum, the follow-up is failed (send_failed). failed and last_error tell you why.
On WhatsApp, outside the 24-hour window, a free text would be refused: the follow-up is sent inside an approved utility template instead, so it still reaches the contact.

Change or stop a follow-up

GET /follow-ups lists follow-ups, the next one first, filterable by status (scheduled, resolved, exhausted, cancelled, failed), conversation_id, type_id and campaign_id. Each follow-up tells who set it (set_by: ai, agent or api), how many were sent, the next scheduled_at, and, once closed, closed_at and closed_by (customer_replied, agent, ai, api, max_followups_reached, expired, cancelled, send_failed).

With campaigns

A campaign can name the follow-up types the agent follows after the send (follow_up_intention_ids), and you can attach a follow-up to a campaign with campaign_id. The campaign report counts the recipients with a follow-up intention, and GET /campaigns/{id}/recipients?filter=read_no_reply lists the contacts worth following up.