Skip to main content
A follow-up is a durable, one-shot scheduled callback for an agent in the current room or thread. Use it for a reminder or a single check-back. A promise in chat is not a scheduled callback: creation must return a follow-up ID.
Choose exactly one of --in <duration> (such as 30m, 2h, or 1d) and --at <iso_timestamp>. Use a timestamp with a timezone for an unambiguous absolute time.

Delivery and management

By default, a callback created inside a thread returns to that thread; otherwise it targets the room. Use --current-thread to require the current thread, --thread-root <message_id> for a specific thread, or --target-room for room-level delivery. The target remains in the current room. --notify-users preserves comma-separated room-member user IDs in thread delivery context. For a room-level reminder, include the intended @user_id in --message instead. Use followup list, show, and cancel to inspect or cancel scheduled work. Listing defaults to pending follow-ups; --status all also includes fired, cancelled, and failed callbacks.

Follow-ups vs Automations

Follow-ups fire once. They do not watch external resources for changes or repeat automatically.
  • A reminder or single check-back uses a follow-up.
  • A recurring schedule, App-record or webhook trigger, or reusable multi-step process uses an Automation.
If a check-back must continue until something changes, its instructions must decide whether to schedule another callback and when to stop. A recurring job usually belongs in an Automation.