Benutzerdefinierte Workflow-Aktionen
Workflows von HubSpot werden verwendet, um Geschäftsprozesse zu automatisieren und Kunden von HubSpot ein effizienteres Arbeiten zu ermöglichen. Sie können benutzerdefinierte Workflow-Aktionen erstellen, um Ihren Kundenservice mit den Workflows von HubSpot zu integrieren.
Zuerst definieren Sie Ihre benutzerdefinierte Aktion, einschließlich der Eingaben, die vom Benutzer, der den Workflow erstellt, ausgefüllt werden müssen, und der URL, die bei Ausführen der benutzerdefinierten Aktion angefragt wird. Wenn dann Kunden Ihre Anwendung installieren, können sie Ihre benutzerdefinierte Aktion zu ihren Workflows hinzufügen. Wenn diese Workflows ausgeführt werden, werden HTTPS-Anfragen an die konfigurierte URL mit der von Ihnen eingerichteten Payload gesendet. In diesem Artikel erfahren Sie, wie Sie:
- Ihre benutzerdefinierte Aktion definieren
- die Anfragequelle validieren
- Standard-Payloads einrichten
- die Payload anpassen
- Ihre benutzerdefinierte Aktion veröffentlichen
- Ihre benutzerdefinierte Aktion testen
- Ihre benutzerdefinierte Aktion ausführen
- die Ausführung einer benutzerdefinierten Aktion blockieren
- eine blockierte Aktion abschließen
- benutzerdefinierte Ausführungsnachrichten hinzufügen
Bevor Sie loslegen, beachten Sie Folgendes:
- Sie benötigen einen HubSpot-Entwickler-Account mit einer HubSpot-App. Ihr App-Logo wird als Symbol für die benutzerdefinierte Aktion verwendet.
- Wenn Sie Anfragen an die Endpunkte der benutzerdefinierten Workflow-Aktion vornehmen, müssen Sie den Schlüssel für den HubSpot-Entwickler-Account in der Anfrage-URL angeben. Zum Beispiel:
https://api.hubspot.com/automation/v4/actions/ {AppdId}?hapikey={APII_Key}
Ihre benutzerdefinierte Aktion definieren
Um eine benutzerdefinierte Workflow-Aktion zu erstellen, müssen Sie die Aktion mithilfe der folgenden Felder definieren. Diese Definition gibt auch das Format für Anfragen von HubSpot sowie die Verarbeitung von Antworten Ihres Diensts an.
- actionUrl: Die URL, an die eine HTTPS-Anfrage gesendet wird, wenn die Aktion ausgeführt wird. Der Anfragetext enthält Informationen darüber, für welchen Benutzer die Aktion ausgeführt wird und welche Werte in die Eingabefelder eingegeben wurden.
- inputFields: Diese definieren den Satz gültiger Werte für die Eingaben der Aktion. Es kann entweder eine statische Liste oder eine Webhook-URL bereitgestellt werden. Wenn eine Webhook-URL angegeben wird, werden die Optionen von dieser URL abgerufen, wenn die Aktion von einem Kunden im Workflow-Tool bearbeitet wird. Diese sind für jedes Feld optional.
- outputFields: Die Werte, die die Aktion ausgibt, die bei späteren Aktionen im Workflow verwendet werden können. Eine benutzerdefinierte Aktion kann null, eine oder mehrere Ausgaben haben.
- executionRules: Eine Liste der Definitionen, die Sie angeben können, damit dem Besucher, der den Workflow erstellt, Fehler von Ihrem Dienst angezeigt werden.
- labels: Bezeichnung, die dem Benutzer beschreibt, was die Felder der Aktion darstellen und was die Aktion macht. Englische Label sind erforderlich, aber Label können in einer der folgenden unterstützten Sprachen angegeben werden: Französisch (
fr
), Deutsch (de
), Japanisch (ja
), Spanisch (es
), Brasilianisches Portugiesisch (pt-br
) und Niederländisch (nl
). Die Angaben zu jeder Sprache enthalten die folgenden Felder:
- actionName: Der im Bereich „Aktion auswählen“ im Workflow-Editor angezeigte Name der Aktion.
- actionDescription: Eine detaillierte Beschreibung für die Aktion, die beim Konfigurieren der benutzerdefinierten Aktion angezeigt wird.
- actionCardContent: Eine zusammengefasste Beschreibung, die auf der Karte der Aktion angezeigt wird.
- inputFieldLabels: Ein Objekt, das die Definitionen von inputFields den entsprechenden Label zuordnet, die der Benutzer beim Konfigurieren der Aktion sieht.
- outputFieldLabels: Ein Objekt, das die Definitionen von outputFields den entsprechenden Label zuordnet, die im Workflows-Tool angezeigt werden.
- inputFieldDescriptions: Ein Objekt, das die Definitionen von inputFields den Beschreibungen unterhalb der entsprechenden Label zuordnet.
- executionRules: Ein Objekt, das die Definitionen von Ihren executionRules Fehlermeldungen zuordnet, die dem Benutzer angezeigt werden, wenn er eine benutzerdefinierte Aktion falsch konfiguriert. In diesem Artikel erfahren Sie, wie Sie benutzerdefinierte Nachrichten für die Ergebnisse der Ausführung von Aktionen im Workflow-Verlauf angeben.
Im Folgenden finden Sie ein Beispiel für eine grundlegende Definition einer Aktion:
Die Anfragequelle validieren
Anfragen für Ihre benutzerdefinierte Aktion verwenden die v2-Version der X-HubSpot-Signatur. Erfahren Sie mehr über die Validierung von Anfragen von HubSpot.
Standard-Payloads
Es gibt zwei Arten von Aufrufen für benutzerdefinierte Workflow-Aktionen:
- Abrufe von Feldoptionen: Füllen Sie eine Liste gültige Optionen aus, wenn ein Benutzer ein Feld konfiguriert.
- Anfragen zur Ausführung einer Aktion: Werden vorgenommen, wenn eine Aktion von einem Workflow ausgeführt wird, der Ihre benutzerdefinierte Aktion enthält.
Abrufe von Feldoptionen
Anfragen zum Abrufen von Optionen werden vorgenommen, wenn ein Benutzer die Konfiguration Ihrer benutzerdefinierten Aktion in seinem Workflow konfiguriert.
Anfrageformat:
Erwartetes Antwortformat:
Um die Anzahl der Optionen, die von einem Optionsabruf zurückgegeben werden, zu beschränken, können Sie einen Paginierungscursor festlegen, der Workflows mitteilt, dass mehr Optionen geladen werden können. Wenn Sie möchten, dass die Liste der Optionen durchsucht werden kann, können Sie "searchable": true
zurückgeben, damit die Ergebnisse durch eine Suchanfrage herausgefiltert werden können.
Anfragen zur Ausführung einer Aktion
Ausführungsanfragen werden erstellt, wenn ein Workflow Ihre benutzerdefinierte Aktion gegen ein aufgenommenes Objekt ausgeführt.
Anfrageformat:
Die Payload mit Funktionen anpassen
Sie können die Anfragen anpassen, die für Ihre benutzerdefinierte Aktion vorgenommen werden, indem Sie serverlose Funktionen für Ihre benutzerdefinierte Aktion konfigurieren.
Abrufe von Feldoptionen anpassen
Es gibt zwei Hooks, um den Lebenszyklus eines Abrufs von Feldoptionen anzupassen:
- PRE_FETCH_OPTIONS: Dies ermöglicht Ihnen, die von HubSpot gesendete Anfrage zu konfigurieren.
- POST_FETCH_OPTIONS: Hiermit können Sie die Antwort von Ihrem Dienst in ein Format umwandeln, das von Workflows verstanden wird.
PRE_FETCH_OPTIONS
Format des Funktionseingabearguments:
Erwartetes Funktionsausgabeformat:
POST_FETCH_OPTIONS
Format des Funktionseingabearguments:
Erwartetes Funktionsausgabeformat:
Ausführungsanfragen anpassen
Es gibt einen Hook in den Aktionsausführungszyklus, eine PRE_ACTION_EXECUTION-Funktion. Mit dieser Funktion können Sie die von HubSpot gesendete Anfrage konfigurieren.
Format des Funktionseingabearguments:
Erwartetes Funktionsausgabeformat:
Ihre benutzerdefinierte Aktion veröffentlichen
Standardmäßig wird Ihre benutzerdefinierte Aktion in einem unveröffentlichten Zustand erstellt und ist nur in dem Entwicklerportal sichtbar, das mit Ihrer HubSpot-Anwendung verknüpft ist. Um Ihre benutzerdefinierte Aktion für Kunden sichtbar zu machen, aktualisieren Sie das published
-Tag in Ihrer Aktionsdefinition in true
.
Ihre benutzerdefinierte Aktion testen
Sie können Ihre benutzerdefinierte Aktion testen, indem Sie einen Workflow im Workflow-Tool erstellen und Ihre benutzerdefinierte Aktion hinzufügen.
Ihre benutzerdefinierte Aktion ausführen
Den Erfolg einer Aktion erkennen Sie am Statuscode, der von Ihrem Dienst zurückgegeben wird:
- 2xx-Statuscodes: Diese geben an, dass die Aktion erfolgreich abgeschlossen wurde.
- 4xx-Statuscodes: Diese geben an, dass die Aktion fehlgeschlagen ist.
- Die Ausnahme hier sind
429
-Statuscodes vom Typ „Rate beschränkt“. Diese werden als erneute Versuche behandelt, und die „Erneut versuchen nach“-Kopfzeile wird befolgt.
- Die Ausnahme hier sind
- 5xx-Statuscodes: Diese geben an, dass es ein vorübergehendes Problem mit Ihrem Dienst gab und Ihre Aktion später erneut versucht wird.
Ausführung einer benutzerdefinierten Aktion blockieren
Benutzerdefinierte Aktionen können die Ausführung eines Workflows blockieren. Anstatt nach dem Empfang einer Antwort vom Typ „abgeschlossen“ (2xx- oder 4xx-Statuscode) von Ihrem Dienst die nächste Aktion im Workflow nach Ihrer benutzerdefinierten Aktion auszuführen, hört der Workflow so lange mit dem Ausführen („blockieren“) dieser Aufnahme auf, bis Sie den Workflow zum Fortfahren anweisen.
Um eine benutzerdefinierte Aktion asynchron zu blockieren, muss Ihre Aktionsausführungsantwort folgendes Format haben:
Sie können optional einen Wert für das Feld hs_default_expiration festlegen, nach dem Ihre benutzerdefinierte Aktion als abgelaufen gilt. Die Ausführung des Workflows wird dann wieder aufgenommen, und die Aktion im Anschluss an Ihre benutzerdefinierte Aktion wird ausgeführt, auch wenn Sie den Workflow nicht zum Fortfahren angewiesen haben.
Eine blockierte Ausführung abschließen
Um die blockierte Ausführung einer benutzerdefinierten Aktion abzuschließen, verwenden Sie den folgenden Endpunkt: /callbacks/{appId}/{callbackId}/complete
.
Das Anfragetextformat ist:
Benutzerdefinierte Ausführungsnachrichten hinzufügen
Geben Sie Regeln für Ihre Aktion an, mit denen festgelegt wird, welche Nachricht auf der Verlaufsseite des Workflows angezeigt wird, wenn die Aktion ausgeführt wird. Die Regeln werden mit den Ausgangswerten von Ihrer Aktion abgeglichen. Diese Ausgangswerte sollten im Antworttext des Webhooks im folgenden Format angegeben werden:
Die executionRules
werden in der angegebenen Reihenfolge getestet. Wenn mehrere Treffer vorhanden sind, wird dem Benutzer nur die Nachricht von der ersten Regel, die übereinstimmt, angezeigt.
Die Regel stimmt überein, wenn die Ausführungsausgabe einem bestimmten Wert in der Regel entspricht. Überlegen Sie beispielsweise diesen Satz an executionRules
:
Die folgenden Treffer würden auftreten:
{"errorCode": "ALREADY_EXISTS", "widgetName": "TestWidget"}:
Dies würde mit der ersten Regel übereinstimmen, daerrorCode
gleichALREADY_EXISTS
ist. In diesem Fall wird, auch wenn einewidgetName
-Ausgabe vorliegt, diese nicht in der Regel verwendet, sodass jeder Wert zulässig ist.{"errorCode": WIDGET_SIZE", "sizeError": "TO_clear"}:
Dies würde mit der zweiten Regel übereinstimmen, daTOO_SMALL
einer der übereinstimmenden Fehler vom TypsizeError
ist underrorCode
WIDGET_SIZE
ist.{"errorCode": WIDGET_SIZE", "sizeError": "NO__TA"}:
Dies würde mit der dritten Regel übereinstimmen, da auch wenn dererrorCode
WIDGET_SIZE
ist, dersizeError
keinem der von der zweiten Regel angegebenen Werte entspricht (TOO_SMALL
oderTOO_BIG
).
Mit diesem Übereinstimmungsmechanismus können Sie Fallback-Fehler festlegen, damit Sie spezifische Fehler für wichtige Fehlerereignisse haben können, aber auf etwas generischere Fehlermeldungen für weniger häufige Fehler zurückgreifen können.
Example 1
A basic example with the following input fields, created for contact and deal workflows:
- a static input field
- a dropdown field with options
- a field whose value is a HubSpot owner
- a field whose value is pulled from a property (that the user creating the workflow selects) on the enrolled object.
Beispiel 2
Die folgende benutzerdefinierte Aktion verwendet eine serverlose Funktion, um die an die konfigurierte actionUrl gesendete Payload umzuwandeln. Da keine objectTypes angegeben sind, ist diese Aktion in allen Workflow-Typen verfügbar.
Beispiel 3
Die folgende benutzerdefinierte Aktion verfügt über Feldabhängigkeiten und -optionen, die von einer API abgerufen werden. Da die Widget-Größe von der Widget-Farbe abhängig ist, kann der Benutzer so lange keinen Wert für die Widget-Größe eingeben, bis eine Widget-Farbe ausgewählt wurde.
Die Widget-Kosten hängen ebenfalls von der Widget-Farbe ab, sie werden jedoch durch den Wert bedingt, den der Benutzer für die Widget-Farbe auswählt. Der Benutzer kann keinen Wert für die Widget-Kosten eingeben, es sei denn, „Rot“ ist als Widget-Farbe ausgewählt.
Beispiel 4
Das folgende Beispiel ist eine blockierende benutzerdefinierte Aktion. Die Callbacks-API kann verwendet werden, um HubSpot mitzuteilen, dass die Aktion abgeschlossen ist und das aufgenommene Objekt zur nächsten Aktion im Workflow zu verschieben.
Sie müssen nicht angeben, dass die Aktion zum Zeitpunkt der Erstellung der Aktion blockiert. Dies wird durch die Antwort von Ihrer konfigurierten actionUrl bestimmt.
Vielen Dank, dass Sie Ihr Feedback mit uns geteilt haben.