Check environment and feature availability before following this guide.
When it expires, what happens
Expire a message when you send it
Addexpiration to /v1/templates/send or /v1/templates/send-bulk:
The response adds
expires_at. Expiring at send time needs only messages:create.
Scheduled messages take the same expiration. after_seconds counts from each delivery, so it
suits recurring messages. at must come after send_at and can’t be combined with recurrence;
an occurrence that would post after its at isn’t sent at all. See
Schedule a message.
Expire every message from a template
A template version can carry an expiry policy, which applies to every send of it: the API, the web app,/lb-send, scheduled messages and batch digests. In the builder, open the gear next
to the template’s name and choose Expiry. Over the API, pass expiration when you create the
template or a version:
defaultapplies to a send that names no expiry.max_after_secondsis the longest a message may live. A send asking for longer is refused with422 expiration_exceeds_maximumbefore anything is posted or charged. With nodefault, the maximum becomes the default, so no message from this template outlives it.noticereplaces the system notice. It’s filled in with the send’s data when the message is sent, and its placeholders count in the template’s request format. It can’t hold anything a reader could click or fill in.
Expire a message later
Expire it now, when something happens
This is the hook for “expire when the incident resolves”: the automation that knows calls it.not_permitted. If Slack refuses an expire-now for the
moment, the expiry stays due and is retried within minutes. Its buttons already don’t work.
These need messages:update, with the same rules for who may change which message as
correcting. Over MCP they’re
set_message_expiration, cancel_message_expiration, expire_message and
expire_messages_by_reference.
What expiry can’t do
Expiry removes the message from Slack and, by default, LithoBlocks’ copy. It can’t take back what has already been seen:- people who read it, and push or email notifications already delivered;
- AI tools that already read the channel;
- your workspace’s retention settings, exports and legal holds;
- thread replies that quoted it.

