Chat SDK now supports callback URLs on buttons and modals, letting developers pause a Workflow run and resume it only after a user clicks a button or submits a form.

Implementation requires creating a workflow webhook and passing its URL to each button's callbackUrl prop inside the Card component. For Modal components, form data arrives in the event payload. Support covers buttons on most platforms with an official adapter, and modals specifically on Slack and Teams.

The real reason to read the full documentation and walkthrough guide is the architecture: this is a human-in-the-loop pattern built directly into the SDK primitives, not bolted on after the fact. That design decision has implications for how approval flows, escalations, and async interactions get built going forward.

[READ ORIGINAL →]