Rendre des formulaires à l’aide d’Actions
Une fois que vous avez créé un formulaire, vous pouvez le rendre avec Actions en utilisant la méthode api.prompt.render()
:
// Example using the post-login trigger
exports.onExecutePostLogin = async (event, api) => {
api.prompt.render(':form_id');
}
exports.onContinuePostLogin = async (event, api) => {
// Add your logic after completing the form
}
Was this helpful?
Remplacez form_id par l’ID du formulaire. Vous pouvez localiser l’ID dans l’URL du formulaire, par exemple : ap_pUMG...
ou sélectionnez-le dans l’onglet de l’éditeur de formulaires Embed.
Dans les Éditeur de code d’Actions, vous pouvez définir la logique métier pour décider quand et comment rendre le formulaire.
exports.onExecutePostLogin = async (event, api) => {
// Only render the form if user is missing company_name metadata
if (!event.user.user_metadata.company_name) {
api.prompt.render(':form_id');
}
}
exports.onContinuePostLogin = async (event, api) => {
// Add your logic after completing the form
}
Was this helpful?
Pour en savoir plus sur ces objets, consultez :
Objet Event : En savoir plus sur l’objet Event et ses propriétés.
Objet API : En savoir plus sur les objets et méthodes API.
Renseigner les valeurs des champs existants et des champs masqués (côté client)
Vous pouvez renseigner des valeurs pour les champs existants et les champs masqués en utilisant la propriété fields
comme second argument dans votre méthode de rendu.
Dans l’exemple ci-dessous, la valeur Jane
remplit le champ first_name
.
exports.onExecutePostLogin = async (event, api) => {
api.prompt.render(':form_id', {
fields: {
first_name: 'Jane',
}
});
}
exports.onContinuePostLogin = async (event, api) => {
// Add your logic after completing the form
}
Was this helpful?
Injecter des données personnalisées avec des variables partagées (côté serveur)
Vous pouvez injecter des variables côté serveur en utilisant la propriété vars
comme second argument dans votre méthode de rendu. Cela peut servir à injecter des informations sensibles sans les exposer côté client.
Dans l’exemple ci-dessous, la valeur 123456789
remplit la variable external_user_id
.
exports.onExecutePostLogin = async (event, api) => {
api.prompt.render(':form_id', {
vars: {
external_user_id: '123456789',
}
});
}
exports.onContinuePostLogin = async (event, api) => {
// Add your logic after completing the form
}
Was this helpful?
Champs et données de variables partagées dans Actions
Les champs et données de variables partagées recueillies dans vos formulaires sont automatiquement disponibles avec event.prompt
dans la fonction de reprise de l’action en cours :
La propriété
id
, avec l’identifiant d’invite que vous affichez.L’objet
fields
, qui contient toutes vos données de champs et de champs cachés.L’objet
vars
, qui contient toutes vos données de variables partagées.
{
"id": "ap_fuVuFiiQWN3mTEujWTy966",
"fields": {
"first_name": "Jane",
"company_name": "Okta"
},
"vars": {
"external_crm_uuid": "f8f32e6f-2329-49bd-bf21-fa8b0bea2652",
"api_hostname": "api.example.com"
}
}
Was this helpful?
Dans l’exemple ci-dessous, api.user.setUserMetadata
remplit l’attribut user_metadata
company_name
avec la propriété event.prompt.fields.company_name
qui a été recueillie à partir de votre formulaire.
exports.onExecutePostLogin = async (event, api) => {
api.prompt.render(':form_id');
}
exports.onContinuePostLogin = async (event, api) => {
api.user.setUserMetadata('company_name', event.prompt.fields.company_name);
}
Was this helpful?
Restrictions et limites
Vous ne pouvez pas rediriger un utilisateur et rendre un formulaire dans la même action. Si vous devez utiliser les deux, envisagez d’utiliser des Actions différentes.
Vous ne pouvez rendre qu’un seul formulaire par Action. Si vous devez rendre plusieurs formulaires, vous devez l’effectuer dans différentes Actions.
Le même formulaire ne peut pas être rendu plus d’une fois sur le même déclencheur. Par exemple, si vous avez un déclencheur
post-login
avec deux Actions, vous ne pouvez pas rendre le même formulaire dans les deux Actions, vous devez créer des formulaires différents pour chaque Action.La taille maximale de la propriété
fields
est de 24 Ko.La méthode
api.prompt.render()
est disponible dans les déclencheurs suivants :