Turn Kustomer customers into HubSpot contacts automatically

By General Input

The moment support creates or updates a customer in Kustomer, their details land on the matching HubSpot contact, with no duplicates and no retyping.

Integrations

  • Kustomer
  • HubSpot

Type

Deterministic Code

Categories

  • Operations
  • Customer Support

I want the people my support team talks to in Kustomer to exist in our HubSpot CRM without anyone retyping them.

Trigger this with a webhook subscribed to Kustomer's customer created and customer updated events (kustomer.customer.create and kustomer.customer.update). The webhook payload tells us which customer changed.

First, load the full record using the Kustomer Get Customer by ID operation with the customer id from the webhook payload. Kustomer responses use a JSON:API envelope, so the fields to read live under data.attributes.

Take the customer's primary email address. If the customer has no email address at all, stop and do nothing. There is nothing to match on in HubSpot, and I would rather skip the record than create a contact we cannot deduplicate later.

Then look for an existing HubSpot contact with that email using Search Contacts, filtering on the email property. If there is no match, file a new one with Create Contact. If there is a match, patch the existing record with Update Contact using the HubSpot contact id returned by the search.

Map a fixed set of fields and do not infer or invent any values: first name, last name, primary email, primary phone and company. Also write the Kustomer customer id onto a dedicated HubSpot contact property, for example kustomer_customer_id, so the two records stay linked and future runs can tell where the contact came from.

Two rules matter. Skip any Kustomer customer that has no email address, because there is nothing to match on. And never overwrite a populated HubSpot field with an empty Kustomer value: when a value is missing or blank in Kustomer, leave the existing HubSpot value exactly as it is and only send the fields that actually carry a value.

Keep the mapping explicit and deterministic. Every step here is a known operation over structured fields, so nothing in this workflow needs judgement or generated text.

Related prompts

Explore more prompts
Turn Mailjet email clicks into ranked HubSpot follow-upsiMessage campaign console with pre-flight checks and delivery boardA searchable RFP answer library your bid team drafts fromSee which target accounts just started advertising on LinkedInAccount health board that puts product usage next to your CRMLook up a customer's full chat history mid conversationLusha prospecting workbench with credit-safe revealsWhich companies your LinkedIn ads reach, matched to your CRMLead response desk with a running clock on every new leadApprove Lusha enrichment field by field before HubSpot saves it