Skip to main content
You can rewrite a message after you send it. This powers progress bars (queued, then 40%, then done), and it makes retries harmless. An update always replaces the whole block list. There is no merging and no partial patch. Send the full message again each time.

Give the message a mid

A mid is your own name for a message. It must be unique inside the conversation. Set one, and you can point at that message later.
mid
string
Must match ^[a-zA-Z0-9_.:-]{1,64}$, and be unique per conversation.

Send the same mid again to update

POST to the response_url again with the same mid, and the message is replaced, not copied. The response tells you which one happened:
This is the fix for double messages. If Make or n8n retries a step, the same mid updates instead of posting twice. Put a mid on anything you would hate to see doubled.

A progress loop

Three POSTs to the same response_url, all using mid: "job-42". The visitor sees one bubble change.
Pure status and progress changes do not mark the message as edited. Changing other blocks does.

Updating after the 45-minute window

Once the token expires, use an API key. PATCH targets a message by id, with no time limit:
Response
PATCH takes exactly one message. Sending more than one returns 400 AMBIGUOUS_UPDATE_TARGET.

Rules

Errors