> ## Documentation Index
> Fetch the complete documentation index at: https://docs-dev-actions-triggers-reorg.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Send Phone Message

> Learn about Send Phone Message Actions, which run during the enrollment and challenge process when SMS or Voice is used as a factor for Multi-factor Authentication (MFA).

The `send-phone-message` trigger runs when using SMS/Voice as a factor for [Multi-factor Authentication (MFA)](/docs/secure/multi-factor-authentication). It runs for both the enrollment process and the challenge process (`event.message_options.action`), and for the `voice` message type when using the New experience for <Tooltip tip="Universal Login: Your application redirects to Universal Login, hosted on Auth0's Authorization Server, to verify a user's identity." cta="View Glossary" href="/docs/glossary?term=Universal+Login">Universal Login</Tooltip> (`event.message_options.message_type === 'voice'`). When using a [custom provider](/docs/secure/multi-factor-authentication/multi-factor-authentication-factors/configure-sms-voice-notifications-mfa#custom-phone-messaging-providers) to send the messages, this trigger is required to configure your custom provider.

<Frame>
  <img src="https://mintcdn.com/docs-dev-actions-triggers-reorg/f9k66KajacwTrGCw/docs/images/cdy7uua7fh8z/FSkVXDdknDJq1hsK08EYu/e031ec0067a5460afae8d9ed5d462288/send-phone-message-flow.png?fit=max&auto=format&n=f9k66KajacwTrGCw&q=85&s=4c37bcc938cccb7180ce1f4aa6ff81ac" alt="Diagram of the Actions Send Phone Message Flow." width="681" height="126" data-path="docs/images/cdy7uua7fh8z/FSkVXDdknDJq1hsK08EYu/e031ec0067a5460afae8d9ed5d462288/send-phone-message-flow.png" />
</Frame>

Actions in this flow are blocking (synchronous): they execute as part of the trigger's process and prevent the rest of the Auth0 pipeline from running until the Action completes.

## References

* [Event object](/docs/customize/actions/reference/send-phone-message/send-phone-message-event-object): Provides contextual information about the message to be sent and the user to be challenged or enrolled.
* [API object](/docs/customize/actions/reference/send-phone-message/send-phone-message-api-object): Provides methods for changing the behavior of the flow.

## Common use cases

### Use a custom SMS provider

A send-phone-message Action can be used to deliver MFA messages through a custom SMS provider:

```javascript lines theme={null}
const AWS = require("aws-sdk");

/**
 * @param {Event} event - Details about the user and the context in which they are logging in.
 */
exports.onExecuteSendPhoneMessage = async (event) => {
  const text = event.message_options.text;
  const recipient = event.message_options.recipient;

  const awsSNS = new AWS.SNS({
    apiVersion: "2010-03-31",
    region: event.secrets.AWS_REGION,
    credentials: new AWS.Credentials(event.secrets.AWS_ACCESS_KEY_ID, event.secrets.AWS_SECRET_ACCESS_KEY)
  });

  const params = { Message: text, PhoneNumber: recipient };

  return awsSNS
    .publish(params)
    .promise();
};
```

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  For this Action to execute properly, the Action must contain secrets named `AWS_REGION`, `AWS_ACCESS_KEY_ID`, and `AWS_SECRET_ACCESS_KEY`, and must have a dependency on the `aws-sdk` `npm` package.
</Callout>
