Destination type
Twilio MMS Destination
Use Twilio MMS destinations when routed events should become text messages with images or other media through Twilio Programmable Messaging.
When to use this destination type
Choose TWILIO_MMS when the receiver target is Twilio Messages API for MMS. Destinations are outbound delivery targets: they do not decide whether a source request should be accepted, and they do not own connection filters or transformations. They own where the final delivery goes and how FastHook should authenticate, pace, disable, and inspect that delivery.
A destination can be reused by multiple connections when several source branches should feed the same receiver. Reuse keeps receiver capacity, credentials, and attempt evidence attached to one destination id.
FastHook dashboard fields
In the dashboard, create a destination, set Destination Type to TWILIO_MMS, then fill the fields below.
From senderMMS-capable Twilio number. Leave blank only when using a Messaging Service SID.
To recipientRecipient phone number in +E.164 format, or a template value that renders to +E.164.
Message bodyPlain MMS body template with FastHook tokens such as {{event_id}}, {{payload.message}}, and {{message}}.
Media URLsOne public media URL per line. Twilio must be able to fetch each URL. Payload URL fields can use {{payload.media_url}} or {{media_url}}.
Messaging Service SIDOptional MG... service SID for sender pools, compliance configuration, and Twilio-managed sender selection.
Account SIDTwilio AC... account identifier from Twilio Console or API keys & tokens.
Auth TokenTwilio account auth token from API keys & tokens. Treat it as a secret and rotate it if exposed.
Max delivery rateBuilt-in one message per second pacing.
API config fields
The REST API stores destination-specific behavior under config. Use PATCH for focused edits and PUT only when your request contains the full config you want to keep.
config.fromMMS sender in E.164 format. Required unless config.messaging_service_sid is set.
config.toRequired MMS recipient in +E.164 format. Supports FastHook template tokens that render to a phone number.
config.body_templateRequired MMS body template. FastHook renders tokens such as {{event_id}}, {{payload.message}}, and {{message}} before sending.
config.media_urlsRequired array of one to ten public HTTP or HTTPS media URLs. Values can include FastHook template tokens such as {{payload.media_url}} or {{media_url}}.
config.messaging_service_sidOptional Twilio Messaging Service SID starting with MG. Use this when Twilio should choose from a sender pool.
config.auth_typeTWILIO_AUTH_TOKEN.
config.auth.account_sidTwilio Account SID used in the Messages API URL and Basic Auth username.
config.auth.auth_tokenTwilio Auth Token used as the Basic Auth password.
config.rate_limitBuilt-in delivery pacing for MMS messages.
config.rate_limit_periodRate-limit period. Twilio MMS destinations use second.
{
"name": "ops-mms-alerts",
"type": "TWILIO_MMS",
"config": {
"from": "+16824246644",
"to": "+37120000000",
"body_template": "FastHook MMS event {{event_id}}\n{{payload}}",
"media_urls": [
"https://demo.twilio.com/owl.png"
],
"messaging_service_sid": null,
"auth_type": "TWILIO_AUTH_TOKEN",
"auth": {
"account_sid": "ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"auth_token": "twilio-auth-token"
},
"rate_limit": 1,
"rate_limit_period": "second"
}
}curl -X POST "https://api.fasthook.io/v1/destinations" \
-H "Authorization: Bearer $FASTHOOK_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "ops-mms-alerts",
"type": "TWILIO_MMS",
"config": {
"from": "+16824246644",
"to": "+37120000000",
"body_template": "FastHook MMS event {{event_id}}\n{{payload}}",
"media_urls": [
"https://demo.twilio.com/owl.png"
],
"messaging_service_sid": null,
"auth_type": "TWILIO_AUTH_TOKEN",
"auth": {
"account_sid": "ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"auth_token": "twilio-auth-token"
},
"rate_limit": 1,
"rate_limit_period": "second"
}
}'Authentication
Destination authentication is outbound. It helps the receiver trust or accept FastHook delivery, and it is separate from source authentication that verifies the original webhook producer.
- Twilio Account SID and Auth Token
- MMS-capable Twilio sender number or Messaging Service
- Trial verified recipient and geo permissions for testing
HTTP methods and rate limit
This destination type uses the methods below for delivery attempts. Rate limits apply at the destination boundary, so every connection that targets the same destination shares that capacity.
Rate limit: Locked to 1 request per second.
Delivery behavior
- FastHook renders the MMS body and media URL templates per delivery, then sends through Twilio's Messages API.
- MMS recipients use +E.164 format, for example +37126430246. Rendered template values must become a valid phone number.
- Each media URL must be public HTTP or HTTPS. Twilio fetches the media from that URL after the request is accepted.
- Trial accounts can usually send only to verified recipient numbers, and country, carrier, sender, and Twilio account rules still apply.
- The From sender or Messaging Service must be able to send MMS. Some international routes support SMS but not MMS.
- Twilio MMS destinations are locked to 1 request per second to avoid message bursts.
Setup checklist
- Open Twilio Console and copy the Account SID and Auth Token from API keys & tokens.
- Use a Twilio phone number that can send MMS, or create a Messaging Service and add one or more MMS-capable senders.
- Prepare one to ten public HTTP or HTTPS media URLs that Twilio can fetch.
- If the account is in trial mode, verify every recipient number in Twilio before sending.
- Confirm Messaging Geo Permissions and route support allow MMS to the destination country and carrier.
- Create a FastHook destination and choose TWILIO_MMS as the destination type.
- Set From sender to the Twilio MMS sender, or set Messaging Service SID and leave From sender blank.
- Set To recipient, Message body, Media URLs, Twilio Account SID, and Auth Token, then connect only MMS-worthy events through filters.
Troubleshooting
Attempts fail with Twilio error 21608.Trial accounts can send only to verified recipient numbers. Verify the To number in Twilio, upgrade the account, or use a production-approved flow.
Attempts fail with Twilio error 21606.The From sender cannot send to that To number. Use an MMS-capable Twilio number or Messaging Service configured for MMS.
Attempts fail with Twilio error 21408.Enable Messaging Geo Permissions for the destination country in Twilio Console, then retry.
Twilio returns 201 but the recipient does not see the MMS.Open Twilio message logs for the message SID and check the final status and error_code. FastHook records the Twilio response body on the attempt.
Media is missing or the message fails after acceptance.Confirm every media URL is public, fetchable by Twilio, uses HTTP or HTTPS, and points to a supported content type.
Attempts fail with authentication errors.Check config.auth.account_sid and config.auth.auth_token, then rotate the Auth Token if it was exposed or revoked.