Hubspot

Vorraussetzungen

Private App mit Berechtigungen.

Private App

Es muss eine private App erstellt werden um einen Access Token zu bekommen.

Authentication

Für die Authentication wird der Zugriffstoken als Bearer Token bei den Request mit geschickt.

Beispiel Request:

const myHeaders = new Headers(); myHeaders.append("Authorization", "Bearer pat-eu1-8aaaaaaa"); const requestOptions = { method: "GET", headers: myHeaders, redirect: "follow" }; try { const response = await fetch("https://api.hubapi.com/crm-objects/v1/objects/tickets/10295397592?properties=subject&properties=content&properties=created_by&properties=hs_conversations_originating_message_id&properties=hs_conversations_originating_thread_id", requestOptions); const result = await response.json(); console.log(result) } catch (error) { console.error(error); };

Berechtigungen

Für die Ticket Automation werden folgende Berechtigungen benötigt:

Scope

Verwendung

crm.objects.users.read

User auslesen für sender ID

settings.users.read

User auslesen für sender ID

crm.objects.contacts.read

Kontakte auslesen

tickets

Ticket lesen

tickets.sensitive

Ticket schreiben

conversations.read

Thread lesen (HelpDesk Tickets)

conversations.write

Thread schreiben (HelpDesk Tickets)

Verbindung zu melibo

Es gibt zwei Wege wie man eine Verbindung zu melibo aufbauen kann, das ist abhängig von Hubspot Paket das der Kunde hat.

Für das Standard Paket kann man die Verbindung nur über die private App machen, für alle Pakete drüber kann man Workflows benutzten.

Verbindung über die private App

Bei der Privaten App soll eine Webhook Subscription erstellt werden, die dafür sorgt das bei jedem neuen Ticket ein Request an melibo gesendet wird.

Im Tab “Webhooks” der privaten App kann man auf “Events subscriptions” erstellen. Die Target URL setzt sich zusammen aus der Basis URL “https://api.melibo.de/dingo/channels/hubspot/webhook/” und dem Webhook API Key des channels ins melibo.

Beispiel:

https://api.melibo.de/dingo/channels/hubspot/webhook/67f2ce86-9ba0-4fa9-9806-2236c4af07ab

Subscription

Zum Erstellen einer Event Subscription muss man auf “create Subscription” klicken, dort wählt man den Object Type und die Events aus.

Als Object Type sollte “TicketoderConversation” ausgewählt werden und als Event “Created”.

Danach speichern und darauf achten das sie subscription aktiv ist und schon kommen neue Tickets in melibo an.

Workflow

Für das senden der Email ans melibo wird ein Workflow benötigt, der eine Webhook anfrage an melibo sendet.

webhook

URL

Die URL ist api.melibo.de/dingo/channels/hubspot/webhook

Authentification

Damit der Webhook Requests zugeordnet werden kann muss ein Secret erstellt werden, damit es im Header als “api-key” mitgesendet werden kann.

Payload

Der Webhook soll einen “Customize request body” haben und die thread_id und die ticket_id mit senden.

Die Thread ID kann direkt hinzugefügt werden: CRM Properties - Enrolled Conversation - Thread ID

Damit man an die Ticket ID kommt muss man eine weitere Datenquelle hinzufügen.

Über “edit available data” werden die Datenquellen verwaltet.

Über “add data source” können andere Datenquellen hinzugefügt werden.

Um die Ticket ID hinzufügen zu können wähle als record Type “Ticket” und als label “The associated ticket” aus.

Nun sieht man unter CRM Properties auch Ticket als auswahlmöglichkeit.

Wählt man Ticket aus so kann man auf die Ticket Felder zugreifen.

Unter Number Properties ist dann schließlich die Ticket ID zu finden

Chat Flow

Ticket Objekt

Variable: @var{ticket}

Variable

Pfad

Pfad 2

Beschreibung

ticket

Ticket Objekt

id

ID des Tickets

content

Ticket Inhalt

subject

created_by

createdate

hs_conversations_originating_thread_id

Thread ID (optional)

source_type

Quelle des Tickets (optional)

sender

Sender der email (optional)

id

ID des Senders

name

Name des Senders

email

Email des Senders

thread

Thread Objekt (optional) für HelpDesk

id

Id des Threads

status

Status des Threads

originalChannelId

Channel Id

originalChannelAccountId

Account ID

spam

inboxId

archived

associatedContactId

Kontakt ID

latestMessageTimestamp

latestMessageReceivedTimestamp

assignedTo

Zugeordneter User

Aktionen

Notiz erstellen

Method

POST

URL

https://api.hubapi.com/crm/v3/objects/notes

Headers

Authorization Bearer …

Body

{ "properties": { "hs_timestamp": "2021-11-12T15:48:22Z", "hs_note_body": "<p>Test</p>" }, "associations": [ { "to": { "id": 13372182775 }, "types": [ { "associationCategory": "HUBSPOT_DEFINED", "associationTypeId": 228 } ] } ] }

Das sieht dann so aus:

Pipeline Ids rausfinden

Für manche Use cases ist es wichtig die richtige Pipeline zu verarbeiten dazu muss zur entsprechenden Pipeline auch die ID herausgefunden werden, da im Ticket nur die ID steht.

Die URL zum anzeigen der Pipelines ist https://api.hubapi.com/crm/v3/pipelines/tickets

Zuletzt aktualisiert

War das hilfreich?