HubSpot Custom Code Workflows: Tipps und Praxisbeispiele

9. Oktober 2024
9. Oktober 2024 Johannes Herr

HubSpot Custom Code Workflows: Tipps und Praxisbeispiele

5 Nützliche Custom Code Workflow Aktionen für den HubSpot Operations Hub

In der heutigen digitalen Welt ist Automatisierung der Schlüssel zum Erfolg für Marketing-, Vertriebs- und Service-Teams. Insbesondere für mittelständische Unternehmen kann die effiziente Nutzung von Automatisierungstools einen entscheidenden Wettbewerbsvorteil bedeuten. HubSpot Custom Code Workflow Aktionen bieten hier eine flexible Lösung, um Prozesse zu optimieren und individuell anzupassen.

In diesem Blogbeitrag möchten wir Ihnen einen Einblick in die Welt der HubSpot Custom Code Workflows geben. Dabei beleuchten wir die Grundlagen, erklären, warum sie für Ihr Unternehmen wichtig sind und wie Sie sie in HubSpot umsetzen. Also, tauchen wir ein!

 

Was sind Custom Code Workflow Actions?

Custom Code Workflows sind benutzerdefinierte Automatisierungsprozesse innerhalb von HubSpot, die es Ihnen ermöglichen, mit Hilfe von Node.js oder Python komplexe Aufgaben zu erledigen, die über die Standardfunktionen hinausgehen. Während herkömmliche Workflows auf vordefinierten Aktionen basieren, eröffnen Custom Code Actions hingegen nahezu unbegrenzte Möglichkeiten zur Individualisierung.

Vorteile von Custom Code Workflows

    • Flexibilität: Passen Sie Workflows genau an die Bedürfnisse Ihres Unternehmens an.
    • Integration: Verbinden Sie HubSpot mit externen Systemen und APIs.
    • Effizienz: Automatisieren Sie komplexe Prozesse, die manuell zeitaufwändig wären.
    • Personalisierung: Erstellen Sie maßgeschneiderte Kundeninteraktionen für ein besseres Kundenerlebnis.

Für Marketer, Vertriebsmitarbeiter und Service-Teams bieten Custom Code Workflows die Möglichkeit, Prozesse zu optimieren, Ihre Datenqualität auf ein neues Level zu heben und personalisierte Erfahrungen zu schaffen, die Kunden binden und überzeugen.

 

Warum sind Custom Code Workflows für Ihr Unternehmen wichtig?

In einem wettbewerbsintensiven Markt ist es entscheidend, sich durch Effizienz und hervorragenden Kundenservice abzuheben. Optimierte, kundenzentrierte Geschäftsabläufe sind das A und O, um langfristig profitable Kundenbzeiehungen aufzubauen. In diesem Zusammehang spielen Custom Code Workflows eine zentrale Rolle.

Effizienzsteigerung durch Automatisierung

HubSpot Custom Code Workflows ermöglichen die Automatisierung komplexer Geschäftsprozesse, die mit Standardwerkzeugen nicht abgedeckt werden können. Indem Sie manuelle Aufgaben reduzieren und Fehlerquellen minimieren, sparen Sie wertvolle Zeit und Ressourcen, die Sie in strategische Initiativen investieren können. Folglich führt dies zu einer gesteigerten Produktivität und einer schnelleren Umsetzung Ihrer Marketing- und Vertriebsstrategien.

Anpassungsfähigkeit und Skalierbarkeit

Jedes Unternehmen ist einzigartig und hat individuelle Geschäftsanforderungen. Custom Code Workflows bieten die Flexibilität, maßgeschneiderte Lösungen zu entwickeln, die genau auf Ihre spezifischen Prozesse abgestimmt sind. Egal, ob Sie Ihre Marketingkampagnen erweitern oder neue Vertriebsstrategien implementieren möchten – die Skalierbarkeit von Custom Code Workflows ermöglicht es Ihnen, Ihre Automatisierungsprozesse mühelos an wachsende Geschäftsanforderungen anzupassen. Damit gewährleisten Sie, dass Ihre Automatisierungslösungen stets mit Ihrem Unternehmen wachsen.

Verbesserung der Datenintegrität und -qualität

Daten sind das Herzstück erfolgreicher Marketing-, Vertriebs- und Servicestrategien. HubSpot Custom Code Workflows helfen Ihnen dabei, die Integrität und Qualität Ihrer Daten zu gewährleisten, indem sie automatische Prüfungen und Bereinigungen durchführen. Dadurch reduzieren Sie Fehler, vermeiden Duplikate und stellen sicher, dass Ihre CRM-Daten stets aktuell und zuverlässig sind. Eine hohe Datenqualität verbessert nicht nur die Effektivität Ihrer Kampagnen, sondern stärkt auch das Vertrauen der Nutzer in Ihr CRM-System.

Erweiterte Integration mit Drittanbieter-Tools

Unternehmen nutzen häufig eine Vielzahl von Softwarelösungen. Custom Code Workflows ermöglichen eine nahtlose Integration von HubSpot mit Drittanbieter-Tools und -Plattformen. Egal ob ERP-Systeme, E-Commerce-Plattformen oder spezialisierte Marketing-Tools – durch benutzerdefinierten Code können Sie Ihre bestehenden Systeme effizient miteinander verknüpfen und einen reibungslosen Datenaustausch gewährleisten. So optimieren Sie Ihre Geschäftsprozesse und schaffen eine einheitliche Datenlandschaft, die Ihre gesamten Betriebsabläufe unterstützt.

 

Wie erstellt man Custom Code Workflows in HubSpot?

Auch wenn das Erstellen von Custom Code Workflows zunächst technisch komplex erscheinen mag, ist der Einstieg einfacher als gedacht. Im Folgenden finden Sie eine Schritt-für-Schritt-Anleitung, die Ihnen den Prozess näherbringt.

HubSpot Custom Code Code Workflow Aktionen einrichten. Prozessablauf.

Schritt 1: Zugang zum HubSpot Operations Hub Professional oder Enterprise

Custom Code Workflows sind Teil des HubSpot Operations Hub Professional oder Enterprise. Stellen Sie sicher, dass Sie über die entsprechenden Zugriffsrechte und Lizenzen verfügen.

Schritt 2: Neuen Workflow erstellen

    1. Navigieren Sie in Ihrem HubSpot-Account zu Automatisierung > Workflows.
    2. Klicken Sie auf Workflow erstellen > Leer
    3. Wählen Sie den passenden Workflow-Typ (z.B. Kontakt-basiert) aus.

Schritt 3: Trigger festlegen

Definieren Sie die Startbedingungen für Ihren Workflow. Dies könnten bestimmte Eigenschaften, Events oder Zeitpunkte sein, die den Workflow auslösen.

Schritt 4: Custom Code Action hinzufügen

    1. Klicken Sie auf das Plus-Symbol (+), um eine neue Aktion hinzuzufügen.
    2. Wählen Sie unter Aktionen die Option Benutzerdefinierter Code aus.

Schritt 5: Code konfigurieren

Im Custom Code Editor können Sie Ihren Code eingeben. HubSpot unterstützt sowohl Python als auch Node.js (JavaScript).

    • Programmiersprache auswählen: Wählen Sie die gewünschte Sprache (Python oder Node.js) aus.
    • Pakete hinzufügen: Bei Bedarf können Sie zusätzliche Bibliotheken importieren. Unterstütze Bibliotheken finden Sie in der Entwicklerdokumentation von HubSpot.
    • Eingabevariablen definieren: Legen Sie fest, welche Daten in den Code eingehen sollen.
    • Ausgabevariablen festlegen: Bestimmen Sie, welche Daten der Code zurückgeben soll.

Schritt 6: Code testen

Verwenden Sie die integrierte Testfunktion, um sicherzustellen, dass Ihr Code wie gewünscht funktioniert:

    1. Klicken Sie auf Aktion testen.
    2. Wählen Sie ein Testobjekt (z. B. einen Kontakt) aus.
    3. Führen Sie den Test aus und überprüfen Sie die Ausgabevariablen sowie eventuelle Fehlermeldungen.

Schritt 7: Workflow aktivieren

Nachdem Sie den Code getestet und alle anderen Workflow-Einstellungen vorgenommen haben, können Sie den Workflow aktivieren. Klicken Sie dazu auf Überprüfen und aktivieren und folgen Sie den Anweisungen.

 

Schlüsselkomponenten einer Custom Code Workflow Aktion

Wenn Sie in HubSpot eine neue benutzerdefinierte Code-Workflow-Aktion zu Ihrem Workflow hinzufügen, stellt Ihnen das System automatisch eine Vorlage bereit, mit der Sie sofort loslegen können. Diese Vorlage sieht folgendermaßen aus:

HubSpot Custom Code Workflow Action Template for Python

Erklärung der wichtigsten Bestandteile:

    1. Definieren der main-Funktion:
      Die Funktion main(event) ist der Einstiegspunkt Ihres Custom Codes. Sie wird jedes Mal aufgerufen, wenn die Custom Code Action im Workflow ausgeführt wird.
    2. Das event-Objekt:
      • event: Enthält alle Informationen über das aktuelle Ereignis im Workflow.
      • event["inputFields"]: Ein Dictionary, das alle Eingabevariablen enthält, die Sie im Workflow definiert haben.
    3. Verwendung von Eingabevariablen:
      • email = event["inputFields"]["email"]: Hier greifen Sie auf die Eingabevariable email zu, die Sie zuvor im Workflow als Eingabe festgelegt haben.
      • Dadurch können Sie Daten direkt nutzen, ohne zusätzliche API-Aufrufe tätigen zu müssen.
    4. Rückgabe von Ausgabevariablen:
      • return { "outputFields": { "email": email } }: Mit dieser Rückgabe stellen Sie sicher, dass die Variable email als Ausgabe verfügbar ist und in späteren Workflow-Schritten verwendet werden kann.
      • outputFields: Ein Dictionary, das alle Ausgabevariablen enthält.

Warum sind Ein- & Ausgabevariablen wichtig?

    • Effizienz: Durch die Verwendung von Eingabe- und Ausgabevariablen können Sie Daten innerhalb des Workflows effizient nutzen, ohne zusätzliche Aufrufe an die HubSpot-API zu machen.
    • Einfachheit: Der Code bleibt übersichtlich und leicht verständlich, was besonders für Anfänger hilfreich ist.
    • Wiederverwendbarkeit: Die Ausgabevariablen können in nachfolgenden Aktionen im Workflow verwendet werden, z. B. um Eigenschaften zu aktualisieren oder personalisierte E-Mails zu versenden.

Anwendung in Ihrem Workflow:

    • Schritt 1: Definieren Sie im Workflow die Eingabevariable email, indem Sie die gewünschte Kontakt-Eigenschaft auswählen.
    • Schritt 2: Fügen Sie die Custom Code Action hinzu und verwenden Sie den obigen Code.
    • Schritt 3: Nutzen Sie die Ausgabevariable email in späteren Workflow-Schritten, z. B. um sie in eine andere Eigenschaft zu kopieren oder für individuelle Benachrichtigungen.

Wichtige Tipps für Anfänger

Um erfolgreich mit HubSpot Custom Code Workflows zu starten, empfiehlt sich die Nutzung der HubSpot-Dokumentation. HubSpot bietet viele Anleitungen und Beispiele, die Ihnen helfen, die Funktionen der Workflows besser zu verstehen. Außerdem ist es sinnvoll, mit kleinen Code-Snippets zu beginnen, um sich mit der Umgebung vertraut zu machen. Zusätzlich können Sie Foren und Community-Beiträge nutzen, um Unterstützung zu erhalten und von den Erfahrungen anderer zu profitieren. So erweitern Sie Ihr Wissen kontinuierlich und meistern typische Herausforderungen leichter.

„Automation applied to an efficient operation will magnify the efficiency.“ – Bill Gates

5 Praxisbeispiele für effektive Custom Code Workflow Actions

1. Namen in Großbuchstaben formatieren

    • Szenario: In Ihrem CRM sind Namen von Kontakten und Unternehmen inkonsistent formatiert, was in E-Mails und Dokumenten unprofessionell wirken kann.
    • Lösung: Nutzen Sie einen Custom Code Workflow, um Namen automatisch zu bereinigen und korrekt zu formatieren. Der Workflow stellt sicher, dass die ersten Buchstaben großgeschrieben sind und entfernt unnötige Leerzeichen oder Zeichen.
    • Umsetzung: Der Workflow durchläuft die Namensfelder und wendet Formatierungsregeln an, z. B. Umwandlung in Groß- und Kleinschreibung an den richtigen Stellen.
    • Beispiel: Aus „mAx MuStErMaNn“ wird automatisch „Max Mustermann“.

HubSpot Custom Code Workflow zur Formatierung der Namen:

HubSpot Cusotm Code Workflow to format the names properly. Python Code.


Beispiel-Code einblenden/ausblenden [Python]

# Disclaimer: Der bereitgestellte Code wird ohne jegliche Gewährleistung zur Verfügung gestellt.
# Die Nutzung erfolgt auf eigene Gefahr. Es wird empfohlen, den Code vor der Implementierung
# in einer Produktionsumgebung gründlich zu testen und bei Bedarf anzupassen.
# Der Autor übernimmt keine Verantwortung für eventuelle Schäden oder Datenverluste,
# die durch die Verwendung dieses Codes entstehen könnten.

import os
from hubspot import HubSpot
from hubspot.crm.contacts import SimplePublicObjectInput, ApiException

# Eigenschaften definieren
FIRSTNAME_PROP = "firstname"
LASTNAME_PROP = "lastname"

def capitalize_name(name):
    return name.strip().lower().title()

def main(event):
    # API Schlüssel aus Umgebungsvariable
    api_key = os.getenv('API')
    if not api_key:
        print("Error: API key not found in environment variables")
        return

    # HubSpot-Client initialisieren
    hubspot_client = HubSpot(access_token=api_key)
    contact_id = event["object"]["objectId"]

    # Vorname und Nachname aus inputFields holen
    input_fields = event.get("inputFields", {})
    firstname = input_fields.get(FIRSTNAME_PROP, "")
    lastname = input_fields.get(LASTNAME_PROP, "")

    print(f"Received firstname={firstname}, lastname={lastname}")

    # Namen kapitalisieren
    capitalized_firstname = capitalize_name(firstname)
    capitalized_lastname = capitalize_name(lastname)

    try:
        # Kontakt mit kapitalisierten Namen aktualisieren
        hubspot_client.crm.contacts.basic_api.update(
            contact_id,
            SimplePublicObjectInput(
                properties={
                    FIRSTNAME_PROP: capitalized_firstname,
                    LASTNAME_PROP: capitalized_lastname
                }
            )
        )
        print(f"Updated {FIRSTNAME_PROP} to {capitalized_firstname}")
        print(f"Updated {LASTNAME_PROP} to {capitalized_lastname}")

    except ApiException as e:
        print(f"Exception when calling HubSpot API: {e}")
        raise e

    return {
        "outputFields": {
            "status": "completed"
        }
    }

if __name__ == "__main__":
    main(event)
    

 

2. Anrede basierend auf dem Vornamen ergänzen

    • Szenario: Für personalisierte E-Mail- oder sonstige Marketing-Kampagnen möchten Sie die korrekte Anrede („Herr“ oder „Frau“) basierend auf dem Vornamen des Kontakts hinzufügen.
    • Lösung: Erstellen Sie ein Wörterbuch  innerhalb Ihres Custom Code Workflows, das gängige Vornamen und die entsprechende Anrede enthält. Der Workflow prüft den Vornamen des Kontakts und ergänzt automatisch die passende Anrede.
    • Umsetzung: Der Custom Code Workflow greift auf ein internes Wörterbuch oder nutzt externe APIs, um die Geschlechtszuordnung basierend auf dem Vornamen vorzunehmen. Die ermittelte Anrede wird dann in einem benutzerdefinierten Feld gespeichert.
    • Beispiel: Wenn der Vorname „Carsten“ lautet, ergänzt der Workflow automatisch die Anrede „Herr“.

HubSpot Custom Code Workflow zur Ergänzung der Anrede auf Basis eines Wörterbuchs:

HubSpot Cusotm Code Workflow to enrich salutation. Python Code.

Klicken Sie hier, um den Code anzuzeigen [Python]

# Disclaimer: Der bereitgestellte Code wird ohne jegliche Gewährleistung zur Verfügung gestellt. 
# Die Nutzung erfolgt auf eigene Gefahr. Es wird empfohlen, den Code vor der Implementierung 
# in einer Produktionsumgebung gründlich zu testen und bei Bedarf anzupassen. 
# Der Autor übernimmt keine Verantwortung für eventuelle Schäden oder Datenverluste, 
# die durch die Verwendung dieses Codes entstehen könnten.

import os
from hubspot import HubSpot
from hubspot.crm.contacts import SimplePublicObjectInput, ApiException

# Dictionary mapping names to titles | Beispiel Dictionary
"Anton":"Herr",
"Finn":"Herr",
"Carsten":"Herr",
"Hermine":"Frau",

    # Add more names and titles as needed
}

def main(event):
    # API Schlüssel aus Umgebungsvariable
    api_key = os.getenv('API')
    if not api_key:
        print("Error: API key not found in environment variables")
        return

    # Initialize the HubSpot client with the access token
    hubspot = HubSpot(access_token=api_key)

    contact_id = event.get('object').get('objectId')
    
    try:
        # Fetch the contact details
        contact = hubspot.crm.contacts.basic_api.get_by_id(contact_id)
        properties = contact.properties
        first_name = properties.get('firstname')

        # Determine the title based on the first name
        title = NAME_TO_TITLE.get(first_name, "")

        # Prepare the update data
        update_data = SimplePublicObjectInput(properties={
            "salutation": title
        })

        # Update the contact
        hubspot.crm.contacts.basic_api.update(contact_id, update_data)
        print(f"Updated contact {contact_id} with Anrede: {title}")

    except ApiException as e:
        print(f"Exception when calling HubSpot API: {e}")
        raise e

if __name__ == "__main__":
    main(event)

 

3. Telefonnummern international formatieren

    • Szenario: Telefonnummern in Ihrem CRM sind unterschiedlich formatiert, was insbesondere bei multnationalen Unternehmen zu Problemen bei der Kontaktaufnahme führen kann.
    • Lösung: Implementieren Sie einen Custom Code Workflow, der Telefonnummern automatisch in ein einheitliches internationales Format umwandelt, einschließlich Landesvorwahl wie „+49“ für Deutschland.
    • Umsetzung: Der Workflow analysiert die vorhandenen Telefonnummern, entfernt unnötige Zeichen und fügt die entsprechende Landesvorwahl hinzu, falls diese fehlt.
    • Beispiel: Eine Telefonnummer wie „0172 1234567“ wird in „+491721234567“ umgewandelt, wenn das Land des zugehörigen Kontaktes Deutschland ist.

HubSpot Custom Code Workflow zur Internationalisierung der Telefonnummern:

HubSpot Cusotm Code Workflow to internationalize phone numbers. Python Code.

Klicken Sie hier, um den Code anzuzeigen [Python]

# Disclaimer: Der bereitgestellte Code wird ohne jegliche Gewährleistung zur Verfügung gestellt.
# Die Nutzung erfolgt auf eigene Gefahr. Es wird empfohlen, den Code vor der Implementierung
# in einer Produktionsumgebung gründlich zu testen und bei Bedarf anzupassen.
# Der Autor übernimmt keine Verantwortung für eventuelle Schäden oder Datenverluste,
# die durch die Verwendung dieses Codes entstehen könnten.

import os
from hubspot import HubSpot
from hubspot.crm.contacts import SimplePublicObjectInput, ApiException

# Länder und Vorwahl-Codes mit zusätzlichen Namen und Abkürzungen
country_codes = [
    {"names": ["Austria", "Österreich"], "dial_code": "+43", "code": "AT"},
    {"names": ["France", "Français"], "dial_code": "+33", "code": "FR"},
    {"names": ["Germany", "Deutschland", "DE", "GE"], "dial_code": "+49", "code": "DE"},
    {"names": ["Switzerland", "Schweiz"], "dial_code": "+41", "code": "CH"},
    {"names": ["United Kingdom", "UK", "England", "Britain"], "dial_code": "+44", "code": "GB"},
    {"names": ["United States", "USA", "US", "America"], "dial_code": "+1", "code": "US"},
    # Weitere Länder hinzufügen, falls nötig
]

def format_to_intl(number, country):
    if country:
        country_normalized = country.lower().replace(" ", "")
        for country_info in country_codes:
            for name in country_info["names"]:
                if name.lower().replace(" ", "") == country_normalized:
                    if number.startswith("0"):
                        number = country_info["dial_code"] + number[1:]
                        print(f"Land: {name}, Vorwahl: {country_info['dial_code']}")
                        print(f"Formatierte Nummer: {number}")
                    return number
    else:
        print(f"Land nicht gefunden für Nummer={number}, Land={country}")
    return number

def main(event):
    # API-Schlüssel aus den Umgebungsvariablen abrufen
    api_key = os.getenv('API')
    if not api_key:
        print("Fehler: API-Schlüssel nicht in den Umgebungsvariablen gefunden")
        return

    # HubSpot-Client initialisieren
    hubspot_client = HubSpot(access_token=api_key)
    contact_id = event["object"]["objectId"]

    # mobilephone, phone und country aus den Eingabevariablen abrufen
    input_fields = event.get("inputFields", {})
    mobile = input_fields.get("mobilephone", "")
    phone = input_fields.get("phone", "")
    country = input_fields.get("country", "")

    mobile = mobile.replace(" ", "") if mobile else ""
    phone = phone.replace(" ", "") if phone else ""
    country = country.strip() if country else ""

    print(f"Gefunden: mobile={mobile}, phone={phone}, country={country}")

    try:
        # Wenn mobile mit '0' beginnt und das Land bekannt ist, aktualisiere die mobilephone-Nummer
        if mobile.startswith("0") and country:
            intl_mobile = format_to_intl(mobile, country)
            hubspot_client.crm.contacts.basic_api.update(
                contact_id,
                SimplePublicObjectInput(properties={"mobilephone": intl_mobile})
            )
            print(f"mobilephone aktualisiert auf {intl_mobile}")

        # Wenn phone mit '0' beginnt und das Land bekannt ist, aktualisiere die phone-Nummer
        if phone.startswith("0") and country:
            intl_phone = format_to_intl(phone, country)
            hubspot_client.crm.contacts.basic_api.update(
                contact_id,
                SimplePublicObjectInput(properties={"phone": intl_phone})
            )
            print(f"phone aktualisiert auf {intl_phone}")

    except ApiException as e:
        print(f"Fehler beim Aufrufen der HubSpot API: {e}")
        raise e

    return {
        "outputFields": {
            "status": "completed"
        }
    }
if __name__ == "__main__":
    main(event)

 

4. Notizen von Unternehmen mit allen zugeordneten Kontakten assoziieren

    • Szenario: Sie möchten, dass Notizen, die einem Unternehmen hinzugefügt wurden, auch für alle zugehörigen Kontakte in der Chronik sichtbar sind.
    • Lösung: Erstellen Sie einen Custom Code Workflow, der Notizen automatisch mit allen Kontakten des Unternehmens verknüpft.
    • Umsetzung: Der Workflow durchläuft alle Kontakte, die mit dem Unternehmen assoziiert sind, und fügt die Notiz zu deren Datensätzen hinzu.
    • Beispiel: Notiz mit der ID „ABC“ des Unternehmens „DFG“ wird mit den Kontakten „HIJ“ und „KLM“ verknüpft.

HubSpot Custom Code Workflow zur Assoziation von Unternehmens-Notizen mit allen zugeordneten Kontakten:

HubSpot Cusotm Code Workflow associate notes from companies to all contacts. Python Code.

Klicken Sie hier, um den Code anzuzeigen [Python]

# Disclaimer: Der bereitgestellte Code wird ohne jegliche Gewährleistung zur Verfügung gestellt.
# Die Nutzung erfolgt auf eigene Gefahr. Es wird empfohlen, den Code vor der Implementierung
# in einer Produktionsumgebung gründlich zu testen und bei Bedarf anzupassen.
# Der Autor übernimmt keine Verantwortung für eventuelle Schäden oder Datenverluste,
# die durch die Verwendung dieses Codes entstehen könnten.

import os
import requests

def main(event):
    # API Schlüssel aus Umgebungsvariable
    access_token = os.getenv('API')
    if not access_token:
        print("Error: Access token not found in environment variables")
        return

    headers = {
        'Authorization': f'Bearer {access_token}',
        'Content-Type': 'application/json'
    }

    # Get contact ID from the event object
    contact_id = str(event['object']['objectId'])

    # Step 1: Get companies associated with the contact
    companies_url = f'https://api.hubapi.com/crm/v3/objects/contacts/{contact_id}/associations/companies'
    companies_response = requests.get(companies_url, headers=headers)
    if companies_response.status_code != 200:
        print(f"Failed to retrieve companies for contact {contact_id}: {companies_response.status_code} {companies_response.text}")
        return

    companies_data = companies_response.json()
    company_ids = [assoc['id'] for assoc in companies_data.get('results', [])]

    if not company_ids:
        print(f"No companies associated with contact {contact_id}.")
        return

    # For each company, get notes and associate them with the contact
    for company_id in company_ids:
        # Step 2: Get notes associated with the company
        notes_url = f'https://api.hubapi.com/crm/v3/objects/companies/{company_id}/associations/notes'
        notes_response = requests.get(notes_url, headers=headers)
        if notes_response.status_code != 200:
            print(f"Failed to retrieve notes for company {company_id}: {notes_response.status_code} {notes_response.text}")
            continue

        notes_data = notes_response.json()
        note_ids = [assoc['id'] for assoc in notes_data.get('results', [])]

        if not note_ids:
            print(f"No notes associated with company {company_id}.")
            continue

        # Step 3: Associate each note with the contact using batch associations
        inputs = []
        for note_id in note_ids:
            inputs.append({
                "from": {"id": note_id},
                "to": {"id": contact_id},
                "type": "note_to_contact"
            })

        if inputs:
            association_url = 'https://api.hubapi.com/crm/v3/associations/notes/contacts/batch/create'
            association_payload = {"inputs": inputs}
            assoc_response = requests.post(association_url, headers=headers, json=association_payload)
            if assoc_response.status_code not in [200, 201, 204]:
                print(f"Failed to associate notes {note_ids} with contact {contact_id}: {assoc_response.status_code} {assoc_response.text}")
            else:
                print(f"Associated notes {note_ids} with contact {contact_id}.")

    print("Association process completed successfully.")

 

5. Zusammenführung von Adressdaten zu einer vollständigen Adresse

    • Szenario: Ihre Adressdaten in HubSpot sind in separaten Feldern gespeichert. Für bestimmte Anwendungen, beispielsweise für Briefaussendungen, benötigen Sie jedoch eine vollständige Adresse in einem einzigen Feld.
    • Lösung: Mit einem Custom Code Workflow können Sie die einzelnen Adressbestandteile automatisch zu einer vollständigen Adresse zusammenführen. Leere Felder werden dabei berücksichtigt, sodass keine überflüssigen Kommas entstehen.
    • Umsetzung: Mittels Custom Code greifen Sie auf die einzelnen Adressfelder zu, entfernen leere Werte und erstellen automatisiert eine konsolidierte Adresse.
    • Beispiel: Die separaten Adressbestandteile „Straße, Hausnummer, Postleitzahl, Stadt und Land“ werden in ein Feld „Gesamte Adresse“ konsolidiert.

HubSpot Custom Code Workflow zur Konsolidierung der Adresse:

HubSpot Cusotm Code Workflow to consolidate the address into one field. Python Code.

Klicken Sie hier, um den Code anzuzeigen [Python]

# Disclaimer: Der bereitgestellte Code wird ohne jegliche Gewährleistung zur Verfügung gestellt.
# Die Nutzung erfolgt auf eigene Gefahr. Es wird empfohlen, den Code vor der Implementierung
# in einer Produktionsumgebung gründlich zu testen und bei Bedarf anzupassen.
# Der Autor übernimmt keine Verantwortung für eventuelle Schäden oder Datenverluste,
# die durch die Verwendung dieses Codes entstehen könnten.

def main(event):
    # Eingabevariablen abrufen
    address = event['inputFields'].get('address', '')
    city = event['inputFields'].get('city', '')
    state = event['inputFields'].get('state', '')
    country = event['inputFields'].get('country', '')
    zip_code = event['inputFields'].get('zip', '')

    # Erstellen einer Liste der vorhandenen Adresskomponenten
    address_components = [address, zip_code, city, state, country]

    # Entfernen von leeren Komponenten
    address_components = [component for component in address_components if component]

    # Vollständige Adresse zusammenstellen
    completeAddress = ', '.join(address_components)

    # Ausgabevariablen zurückgeben
    return {
        "outputFields": {
            "GesamteAdresse": completeAddress
        }
    }

 

Fazit und nächste Schritte mit dem HubSpot Operations Hub

Die Möglichkeiten mit Custom Code Workflow Actions des HubSpot Operations Hub sind nahezu unbegrenzt. Sie bieten Unternehmen leistungsstarke Möglichkeiten, um CRM-Prozesse zu automatisieren, Daten zu bereinigen und Marketing-, Vertriebs- und Servicestrategien zu optimieren.

Jetzt sind Sie dran! Nutzen Sie die vorgestellten Beispiele als Inspiration und starten Sie damit, Ihre eigenen Custom Code Workflows zu erstellen. Wenn Sie Unterstützung benötigen oder mehr über die Implementierung erfahren möchten, stehen wir Ihnen gerne zur Verfügung.

Kontaktieren Sie uns für eine persönliche Beratung und entdecken Sie, wie Sie mit HubSpot Custom Code Workflow Actions Ihre Revenue Operations auf das nächste Level heben können.

×

HubSpot Custom Code Workflow Action entsperren


    Themen, die für andere Leser interessant waren:

    Künstliche Intelligenz im Vertrieb

    Sales Enablement Strategie als Erfolgsfaktor

    CRM-Software – Mehr Effizienz für Ihren Vertrieb

    , , , , ,