About this template
Segment your customers by allowing them to choose their communication preferences and the content they prefer to receive from you.
This "Marketing communication preferences" template includes:
- An initial form step that allows the user to select the content they want to receive.
- A flow that updates the user's metadata with their communication preferences.
How to configure this template
Visit the Auth0 Dashboard and then open the Forms Dashboard by clicking the Actions > Forms option from the sidebar. Once there, click the "Create form" button.
You have two options for creating this form: you can use a template or import a JSON file.
Use a template
- Click the "Use a template" option in the "Create form" modal.
- Click the "Marketing communication preferences" template.
- Click the "Continue" button to customize the template to fit your use case.
Import a JSON file
- Download the template JSON file.
- Click the link to import a JSON file at the bottom of the "Create form" modal.
- Either drag and drop the JSON file you downloaded or browse to its location and upload it.
- Provide a name to your form and its flow if the default values are not fitting.
- Click the "Continue" button to customize the template to fit your use case.
How to use this form
You can render a form with an Action using the api.prompt.render()
method, which takes the form ID as an argument.
There are different ways in which you can find your form ID:
- On the Forms Dashboard home page, you can see a list of your existing forms. Each entry includes a "Title" and "Form ID" field, which you can copy.
- If you are using the Form Editor in the Forms Dashboard:
- Click the "Render" tab to see the sample code that contains the
FORM_ID
value. - Alternatively, you can inspect the URL which follows this pattern:
- Click the "Render" tab to see the sample code that contains the
https://forms.auth0.com/tenants/<REGION>/<TENANT>/forms/<FORM_ID>/render
Once you have located your Form ID, copy and paste it in the following field so that any code snippet that uses such value updates to reflect it:
It's best to render the "Marketing communication preferences" form during the login flow. As such, you need to create a Login Action to render it by following these steps:
- Visit the "Flows" section of the Auth0 Dashboard and select the "Login" flow.
- Locate the "Add Action" panel in the "Login" flow board and click the + icon button.
- Select the "Build from scratch" option.
- Provide a name to your Action and click the "Create" button.
Marketing communication preferences
/*** @param {Event} event - Details about the user and the context in which they are logging in.* @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.*/exports.onExecutePostLogin = async (event, api) => {const FORM_ID = 'AUTH0_FORM_ID';if (!event.user.app_metadata.communication_preferences) {api.prompt.render(FORM_ID);}}/*** @param {Event} event - Details about the user and the context in which they are logging in.* @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.*/exports.onContinuePostLogin = async (event, api) => {}
- Click the "Deploy" button.
- Next, click on the "Add to flow" link in the toast message that comes up, or click on the "Back to flow" link to return to the "Login" flow board.
- Locate the "Add Action" panel in the "Login" flow board, click the Custom tab, and drag-and-drop the "Marketing communication preferences" Action between the "Start" and "Complete" states in the board.
- Finally, click the "Apply" button in the top-right corner.
Now, when any user attempts to log in, and their event.user.app_metadata
object does not have a communication_preferences
property defined, this Action will render your "Marketing communication preferences" form and ask the user to select how they want to hear back from you. Additionally, you could add a "Skip" button to the form to allow users to bypass this step if they are not interested.