The Send Phone Message trigger allows you to execute code when using SMS/Voice as a factor for Multi-factor Authentication (MFA). When using a custom provider to send the messages, this flow’s send-phone-message trigger is required to configure your custom provider.
Actions in this flow are blocking (synchronous), which means they execute as part of a trigger’s process and will prevent the rest of the Auth0 pipeline from running until the Action is complete.
The send-phone-message trigger will run for the enrollment process and the challenge process (event.message_options.action). It will also run for the voice message type when using the New experience for (event.message_options.message_type === 'voice').
const AWS = require("aws-sdk");/** * Handler that will be called during the execution of a SendPhoneMessage flow. * * @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.