Browse workflows

On-call and support teams

Confirm incident SMS delivery with Twilio and Slack

Check whether on-call or customer SMS alerts were delivered, then post a redacted status summary to Slack.

Outcome: A delivery-status brief for recent Twilio messages without sending new SMS

Integrations in this workflow

Example questions

Try asking your AI client

  • List recent Twilio messages and their delivery status. If any failed in the last hour, get the message SID, error code, and destination country (not the full number) and post a short summary to our incidents Slack channel. Do not send new SMS.

  • Did the outage SMS to on-call fail in Twilio, and is #incidents already talking about it?

  • Write a redacted Slack update for failed Twilio messages from the last hour - do not send SMS or post until I approve.

  • Summarize Twilio delivery for the last 24 hours and flag anything that belongs in Slack #incidents.

  • If Twilio error 30003 spiked, draft a Slack incident note with counts by country and do not message any numbers.

The problem

Incident and verification workflows often send SMS through Twilio. Chat tools show that someone asked for a page, not whether the message reached the phone.

When a PagerDuty integration is connected later, add: pull the open incident, then confirm matching Twilio alerts for the on-call number.

Gateway tools

  • twilio__list_messages or twilio__search_messages for delivery status
  • twilio__get_message when a SID needs error_code or timestamps
  • slack__send_channel_message for a redacted summary

Use describe-service-tool to confirm Twilio and Slack are connected before dispatching.

Governance

  • Twilio results include phone numbers and message bodies. Prefer SID, status, and error_code in Slack.
  • This integration cannot send SMS or place calls. Do not ask the agent to page someone through Twilio.
  • Audit logs record tool calls. Keep page_size small during incidents.

Connect via private gateway

Activate the integrations above, create an API token scoped to mcp:private-gateway, then add this config to your MCP client.

Config file: ~/.cursor/mcp.json

{
    "mcpServers": {
        "stackgate-private-gateway": {
            "url": "https://stackgate.ai/mcp/private",
            "headers": {
                "Authorization": "Bearer YOUR_API_TOKEN"
            }
        }
    }
}