Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs-dev.auth0-mintlify.app/llms.txt

Use this file to discover all available pages before exploring further.

The send-phone-message trigger runs when using SMS/Voice as a factor for Multi-factor Authentication (MFA). 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 (event.message_options.message_type === 'voice'). When using a custom provider to send the messages, this trigger is required to configure your custom provider.
Diagram of the Actions Send Phone Message Flow.
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: Provides contextual information about the message to be sent and the user to be challenged or enrolled.
  • 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:
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();
};
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.