Présentation et vue d’ensemble des extensions de workflows.
actionUrl
: l’URL vers laquelle une requête HTTPS est envoyée lorsque l’action est exécutée. Le corps de la requête contient des informations sur l’utilisateur au nom duquel l’action est exécutée et sur les valeurs saisies pour les champs de saisie.
objectTypes
: les objets CRM avec lesquels cette action peut être utilisée.
published
: par défaut, les actions personnalisées sont créées dans un état non publié. Les actions non publiées ne sont visibles que dans le portail de développeur associé à votre application HubSpot. Pour rendre votre action personnalisée visible par les utilisateurs, mettez à jour l’indicateur published de votre définition d’action et définissez-le sur true.
inputFields
: les entrées reçues par l’action. Celles-ci seront renseignées par l’utilisateur.
inputFieldDependencies
: ces règles définissent les relations entre deux ou plusieurs entrées, en fonction de leur dependencyType
, comme dans cet exemple. Vous pouvez utiliser les options dependencyType
suivantes :
SINGLE_FIELD
: ces règles permettent de griser les champs jusqu’à ce que les autres champs répondent à des conditions spécifiques. Utilisez cette option pour vous assurer qu’un champ est pré-rempli avant de permettre aux visiteurs de continuer à remplir le reste du formulaire. Les champs de contrôle (parents) fourniront des valeurs aux champs dépendants (enfants) correspondants.CONDITIONAL_SINGLE_FIELD
: ces règles permettent de masquer les champs jusqu’à ce que les autres champs répondent à des conditions spécifiques. Utilisez cette option pour afficher ou masquer des champs spécifiques en fonction d’une sélection précédente. Par exemple, si votre entreprise est une boulangerie, vous pouvez ajouter une case à cocher pour demander aux visiteurs s’ils aiment les gâteaux et, uniquement si la case est cochée, afficher un champ pour demander quelle saveur de gâteau ils préfèrent.outputFields
: les valeurs résultantes de l’action qui peuvent être utilisées par des actions suivantes dans le workflow. Une action personnalisée peut avoir aucun, un ou plusieurs résultats.
objectRequestOptions
: propriétés de l’objet inscrit incluses dans la charge utile de actionUrl.
labels
: une copie qui décrit pour l’utilisateur ce que représentent les champs de l’action et ce que fait l’action. Des libellés en anglais sont requis, mais les libellés peuvent également être indiqués dans l’une de ces langues prises en charge :
fr
)de
)ja
)es
)pt-br
)nl
)pl
)sv
)it
)da_dk
)fi
)no
)zh-tw
)executionRules
: une liste des définitions que vous pouvez spécifier pour identifier les erreurs de votre service vers l’utilisateur qui crée le workflow.
functions
: les blocs de code qui sont exécutés afin de transformer la charge utile envoyée vers une URL et/ou de transformer la réponse à partir de cette URL.
event
contient les données qui sont transmises à la fonction.exports.main
est la méthode qui sera appelée lors de l’exécution de la fonction.callback
peut être utilisée pour renvoyer un résultat.functionSource
sera dans la chaîne. Assurez-vous que les caractères du code ont été échappés.
Généralement, la définition d’une fonction suit le format suivant :
name
: le nom interne du champ de saisie, différent de son libellé. Le libellé affiché dans l’interface utilisateur doit être défini à l’aide de la section Libellés de la définition d’action personnalisée.type
: le type de valeur requis par la saisie.fieldType
: comment le champ de saisie doit être rendu dans l’interface utilisateur. Les champs de saisie imitent les propriétés CRM. Découvrez-en davantage sur les combinaisons valides entre type
et fieldType
.supportedValueTypes
compte deux valeurs valides :
OBJECT_PROPERTY
: l’utilisateur peut sélectionner une propriété à partir de l’objet inscrit ou un résultat d’une action précédente à utiliser comme valeur du champ.STATIC_VALUE
: doit être utilisé dans tous les autres cas. Cela signifie que l’utilisateur doit saisir lui-même une valeur.isRequired
: détermine si l’utilisateur doit donner ou non une valeur pour cette entrée.inputFieldDependencies
. Découvrez-en davantage sur la définition de votre action personnalisée.optionsURL
sera formatée comme suit :
Champ | Description |
---|---|
portalId | L’ID du compte HubSpot. |
actionDefinitionId | Votre ID de définition d’action personnalisée. |
actionDefinitionVersion | Votre version de définition d’action personnalisée. |
objectTypeId | Le type d’objet du workflow dans lequel l’action est utilisée. |
inputFieldName | Le champ de saisie pour lequel vous récupérez des options. |
inputFields | Les valeurs pour les champs qui ont déjà été remplis par l’utilisateur du workflow. |
q | La requête de recherche fournie par l’utilisateur. Cela doit être utilisé pour filtrer les options renvoyées. Cela ne sera inclus que si la récupération d’option précédente a renvoyé searchable: true et que l’utilisateur a saisi une requête de recherche. |
after | Le curseur de pagination. Il s’agira du même curseur de pagination que celui renvoyé par l’option fetch précédente. Il peut être utilisé pour garder une trace des options qui ont déjà été récupérées. |
Champ | Description |
---|---|
q | Le curseur de pagination. Si cela est fourni, l’application Workflows affichera un bouton pour charger plus de résultats en bas de la liste des options lorsqu’un utilisateur sélectionne une option. Lorsque la page suivante est chargée, cette valeur sera incluse dans la charge utile de la requête sous fetchOptions.after . Ce champ est facultatif. |
after | La valeur par défaut est définie sur false . Dans le cas true , l’application Workflows affichera un champ de recherche pour permettre à un utilisateur de filtrer les options disponibles en fonction d’une requête de recherche. Lorsqu’une requête de recherche est saisie, les options seront à nouveau récupérées avec ce terme de recherche dans la charge utile de la requête sous fetchOptions.q . Ce champ est facultatif. |
searchable:true
.PRE_FETCH_OPTIONS
: une fonction qui configure la charge utile envoyée depuis HubSpot.POST_FETCH_OPTIONS
: une fonction qui transforme la réponse de votre service dans un format pris en charge par HubSpot.id
dans la définition de fonction.
Champ | Description |
---|---|
portalId | L’ID du compte HubSpot. |
actionDefinitionId | Votre ID de définition d’action personnalisée. |
actionDefinitionVersion | Votre version de définition d’action personnalisée. |
objectTypeId | Le type d’objet du workflow dans lequel l’action est utilisée. |
inputFieldName | Le champ de saisie pour lequel vous récupérez des options. |
inputFields | Les valeurs pour les champs qui ont déjà été remplis par l’utilisateur du workflow. |
q | La requête de recherche fournie par l’utilisateur. Cela doit être utilisé pour filtrer les options renvoyées. Cela ne sera inclus que si la récupération d’option précédente a renvoyé searchable: true et que l’utilisateur a saisi une requête de recherche. |
after | Le curseur de pagination. Il s’agira du même curseur de pagination que celui renvoyé par l’option fetch précédente. Il peut être utilisé pour garder une trace des options qui ont déjà été récupérées. |
Champ | Description |
---|---|
webhookUrl | L’URL du webhook à appeler pour HubSpot. |
body | Le format du corps de requête. Cet élément est facultatif. |
httpHeaders | Un mappage d’en-têtes de requête personnalisés à ajouter. Cet élément est facultatif. |
contentType | Le Content-Type de la requête. La valeur par défaut est définie sur application/json . Cet élément est facultatif. |
accept | Le type d’alerte Accept . La valeur par défaut est définie sur application/json . Cet élément est facultatif. |
httpMethod | La méthode HTTP avec laquelle effectuer la requête. La valeur par défaut est POST , mais d’autres valeurs valides sont GET , POST , PUT PATCH , et DELETE . Cet élément est facultatif. |
POST_FETCH_OPTIONS
. La définition d’une fonction POST_FETCH_OPTIONS
est identique à celle d’une fonction PRE_FETCH_OPTIONS
. Lorsque des options de récupération de données externes sont définies, un menu déroulant sera affiché dans les options de saisie pour l’action.
type
et fieldType
.actionURL
. Par exemple, vous pouvez copier des champs de sortie dans une propriété existante dans HubSpot.
**
labels
: une copie qui décrit ce que représentent les champs de l’action et ce que fait l’action. Des libellés en anglais sont requis, mais les libellés peuvent également être indiqués dans l’une de ces langues prises en charge : français (fr
), allemand (de
), japonais (ja
), espagnol (es
), portugais du Brésil (pt-br
) et néerlandais (nl
).actionName
: nom de l’action affiché dans le panneau Sélectionner une action de l’éditeur de workflow.actionDescription
: une description détaillée de l’action affichée lorsque l’utilisateur configure l’action personnalisée.actionCardContent
: une description récapitulative affichée dans la carte de l’action.appDisplayName
: Le nom de la section du panneau Choisir une action où toutes les actions de l’application sont affichées. Si appDisplayName est défini pour plusieurs actions, la première trouvée est utilisée.inputFieldLabels
: un objet qui regroupe les définitions de inputFields vers les libellés correspondants que l’utilisateur verra lors de la configuration de l’action.outputFieldLabels
: un objet qui regroupe les définitions de outputFields vers les libellés correspondants indiqués dans l’outil Workflows.inputFieldDescriptions
: un objet qui regroupe les définitions de inputFields vers les descriptions sous les libellés correspondants.executionRules
: un objet qui regroupe les définitions de executionRules vers des messages qui seront affichés pour les résultats d’exécution d’action dans l’historique du workflow. Il existe une section distincte dans ces documents pour les règles d’exécution.actionUrl
.
callbackId
** :** un ID unique pour l’exécution spécifique. Si l’exécution de l’action personnalisée est bloquée, utilisez cet ID.object
: les valeurs des propriétés demandées dans objectRequestOptions
.InputFields
: les valeurs pour les saisies que l’utilisateur a renseignées.outputFields
: les valeurs des champs de sortie définis précédemment. Ces valeurs peuvent être utilisées dans des actions ultérieures.hs_execution_state
: une valeur spéciale facultative qui peut être ajoutée à outputFields. Il n’est pas possible de spécifier une nouvelle tentative. Seules les valeurs suivantes peuvent être ajoutées :
SUCCESS
et FAIL_CONTINUE
indiquent que l’action est terminée et que le workflow doit passer à l’action suivante à exécuter. Si aucun statut d’exécution n’est spécifié, des codes de statut seront utilisés pour déterminer le résultat d’une action :
actionURL
et analysez les données de actionURL
. Il existe deux types de fonctions d’exécution :
PRE_ACTION_EXECUTION
POST_ACTION_EXECUTION
PRE_ACTION_EXECUTION
pour formater les données avant de les envoyer vers actionURL
.
La définition de la fonction sera formatée comme suit :
actionURL
, utilisez une fonction POST_ACTION_EXECUTION
pour formater les données pour HubSpot.
La définition de la fonction sera formatée comme suit :
completed (2xx or 4xx status code)
de votre service, le workflow cessera d’exécuter (« bloquera ») cette inscription tant que vous n’indiquerez pas au workflow de poursuivre.
Lors du blocage, vous pouvez spécifier une valeur pour le champ hs_default_expiration
, après quoi votre action personnalisée sera considérée comme expirée. L’exécution du workflow reprendra alors et l’action suivant votre action personnalisée sera exécutée, même si l’action n’est pas terminée.
Pour bloquer une action personnalisée, la réponse de l’exécution de votre action doit avoir le format suivant :
Champ | Description |
---|---|
hs_execution_state | Pour bloquer l’exécution du Workflow, cette option doit être définie sur BLOCK pour votre action personnalisée. Ce champ est obligatoire. |
hs_expiration_duration | La durée doit être spécifiée au format ISO 8601 Durée. Si ce champ n’est pas renseigné, un délai d’expiration par défaut de 1 semaine sera utilisé. Cet élément est facultatif. |
/callbacks/{callbackId}/complete
.
Formatez le corps de la requête comme suit :
Champ | Description |
---|---|
hs_execution_state | L’état d’exécution final. Ce champ est obligatoire. Les valeurs valides pour ce champ sont SUCCESS pour indiquer que votre action personnalisée s’est correctement terminée et FAIL_CONTINUE pour indiquer qu’il y a un problème avec l’exécution de votre action personnalisée. |
actionURL
, au format suivant :
executionRules
seront testées dans l’ordre indiqué. S’il existe plusieurs correspondances, seul le message de la première règle correspondante s’affichera pour l’utilisateur.
La règle est associée lorsque le résultat d’exécution correspond à une valeur spécifique dans la règle. Prenons l’exemple de cet ensemble de règles executionRules
:
{"errorCode": "ALREADY_EXISTS", "widgetName": "Test widget"}
: Cela correspond à la première règle, car errorCode
équivaut à ALREADY_EXISTS
. Dans cet exemple, même s’il y a un résultat widgetName
, il ne sera pas utilisé dans la définition de la règle. Ainsi, toute valeur sera autorisée.{"errorCode": "WIDGET_SIZE", "sizeError": "TOO_SMALL"}
: Cela correspond à la deuxième règle, car TOO_SMALL
est l’un des éléments sizeError
correspondants et errorCode
est WIDGET_SIZE
.{"errorCode": "WIDGET_SIZE", "sizeError": "NOT_A_NUMBER"}
Cela correspond à la troisième règle, car même si errorCode
est WIDGET_SIZE
, sizeError
ne correspond pas à l’une des valeurs spécifiées par la deuxième règle (TOO_SMALL
ou TOO_BIG
).published
de votre définition d’action et définissez-le sur true
. Si une action n’est pas publiée, les portails qui ont déjà ajouté l’action à leur workflow pourront toujours modifier et exécuter les actions déjà ajoutées. Cependant, ils ne seront pas en mesure d’ajouter l’action à nouveau.
widgetName
: un champ de saisie statiquewidgetColor
: un champ déroulant avec des optionswidgetOwner
: un champ représentant un propriétaire HubSpot.widgetQuantity
: un champ dérivé d’une propriété (que l’utilisateur créant le workflow sélectionne) de l’objet inscrit.objectTypes
n’est pas spécifié dans la définition d’action personnalisée, cette action sera disponible dans tous les types de workflows.