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_metadatacompany_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 :