---
title: "Connect HubSpot"
description: "Log in to HubSpot from Scratcher and create or update contacts with the properties you choose, step by step."
url: https://scratcher.io/help/integrations/hubspot
language: en
---

1. [Help center](https://scratcher.io/help)
2. [Integrations](https://scratcher.io/help/integrations)
3. Connect HubSpot

# Connect HubSpot

Log in to HubSpot from Scratcher and create or update contacts with the properties you choose, step by step.

With the HubSpot integration, everyone who signs up is created as a contact in HubSpot. If a contact with the same email address already exists, it is updated instead.

## What you need

- A HubSpot account. All HubSpot editions work, including the free CRM.
- A HubSpot user who is allowed to connect apps. In HubSpot that is a **Super Admin**, or a user with the **App Marketplace** access permission.
- A Scratcher plan that includes all native integrations. If the button is locked, see [Your trial, plans and what happens when the trial ends](https://scratcher.io/help/billing/trial-and-plans).

You don't need an API key. You log in to HubSpot and approve the access.

## Step 1: Connect HubSpot

1. In Scratcher, go to **Settings** > **Integrations** and click **HubSpot**.
2. Click **Install integration**. You are sent to HubSpot.
3. Log in to HubSpot. If you have several HubSpot accounts, choose the one to connect.
4. HubSpot shows what Scratcher asks for. Click to connect the app.
5. You come back to Scratcher, and HubSpot is installed.

## The access Scratcher asks for

HubSpot asks you to approve these permissions:

- Read and write contacts (`crm.objects.contacts.read` and `crm.objects.contacts.write`): to find a contact by email, create new contacts and update existing ones.
- Read and write the contact properties (`crm.schemas.contacts.read` and `crm.schemas.contacts.write`): to show your contact properties in the field mapping.

Scratcher only works with contacts. It doesn't read or change deals, companies, emails or anything else.

## Step 2: Turn it on in a campaign

1. In the editor, go to **Connect** > **Integrations** > **HubSpot** and click **Activate**.
2. If you have connected more than one HubSpot account, choose it under **Select account**.
3. Under **Field mappings**, click **Add field mapping** and match your fields to HubSpot contact properties. For example "Lead - First name" to **First Name** and "Lead - Last name" to **Last Name**.
4. Under **Filter by permissions (optional)**, choose your marketing consent checkbox, so only people who said yes are sent.
5. Click **Save**, and then **Test** to send a test contact.

> Good to know: HubSpot has no list to choose here, so Scratcher starts sending as soon as you click **Activate**. If the campaign already has leads, set up the mappings and the filter quickly, or activate HubSpot before the campaign goes live.

## Field mapping

- The **Destination field** list shows your HubSpot contact properties, including your own custom properties. HubSpot's internal properties aren't shown.
- The email address and phone number are always sent to the HubSpot properties **Email** and **Phone Number**. Map everything else yourself, including first and last name.
- Checkbox properties get yes or no, and date properties get a date, so map a consent's **Accepted** field to a checkbox property and dates to date properties.
- To mark where contacts came from, map a **Use custom value** such as "Scratcher summer game" to a property you use for lead source. You can then build a list or workflow in HubSpot on that property.

## Consent

HubSpot doesn't get a subscription or marketing status from Scratcher. Use **Filter by permissions** to send only people who agreed, or map the consent's **Accepted**, **Date** and **Content** fields to properties, so you have proof of consent in HubSpot.

## What is sent and when

New sign-ups are sent within a minute or two. Existing leads are sent when you activate the integration. When someone takes part again, their contact is updated.

## Troubleshooting

Failed deliveries show under **Settings** > **Integrations** > **Delivery status** with HubSpot's own message.

- **A property value is not valid**: the value doesn't fit the property in HubSpot, for example text in a number or dropdown property. Check the mapping, or change the property type in HubSpot.
- **The connection stops working**: the HubSpot user who connected the app has been removed, or the app was uninstalled in HubSpot. Delete the account on the **Accounts** tab, connect HubSpot again and choose the new account in your campaigns.
- **Contacts get no first name**: map "Lead - First name" to **First Name**. Only email and phone are filled in automatically.

Integrations

- [How integrations work](https://scratcher.io/help/integrations/how-integrations-work)
- [All integrations](https://scratcher.io/help/integrations/other-integrations)
- [Check the delivery status and resend leads](https://scratcher.io/help/integrations/delivery-status)
- [Connect HubSpot](https://scratcher.io/help/integrations/hubspot)
- [Connect Salesforce Marketing Cloud](https://scratcher.io/help/integrations/salesforce-marketing-cloud)
- [Connect Microsoft Dynamics 365 with Zapier](https://scratcher.io/help/integrations/microsoft-dynamics-365)
- [Connect Emarsys](https://scratcher.io/help/integrations/emarsys)
- [Connect Klaviyo](https://scratcher.io/help/integrations/klaviyo)
- [Connect Mailchimp](https://scratcher.io/help/integrations/mailchimp)
- [Connect ActiveCampaign](https://scratcher.io/help/integrations/activecampaign)
- [Connect Apsis One](https://scratcher.io/help/integrations/apsis-one)
- [Connect Drip](https://scratcher.io/help/integrations/drip)
- [Connect HeyLoyalty](https://scratcher.io/help/integrations/heyloyalty)
- [Connect Peytz](https://scratcher.io/help/integrations/peytz)
- [Connect Marketingplatform](https://scratcher.io/help/integrations/marketingplatform)
- [Connect Campaign Monitor with Zapier](https://scratcher.io/help/integrations/campaign-monitor)
- [Connect ActiveTrail with Zapier](https://scratcher.io/help/integrations/activetrail)
- [Connect Bloomreach](https://scratcher.io/help/integrations/bloomreach)
- [Connect Iterable](https://scratcher.io/help/integrations/iterable)
- [Connect Mapp](https://scratcher.io/help/integrations/mapp)
- [Connect Agillic](https://scratcher.io/help/integrations/agillic)
- [Connect Ortto](https://scratcher.io/help/integrations/ortto)
- [Connect Emarketeer](https://scratcher.io/help/integrations/emarketeer)
- [Connect Shopify](https://scratcher.io/help/integrations/shopify)
- [Connect Hello Retail](https://scratcher.io/help/integrations/hello-retail)
- [Connect 8,000+ apps with Zapier](https://scratcher.io/help/integrations/zapier)
- [Connect monday.com with Zapier](https://scratcher.io/help/integrations/monday-com)
- [Connect Asana with Zapier](https://scratcher.io/help/integrations/asana)
- [Connect Podio with Zapier](https://scratcher.io/help/integrations/podio)
- [Connect Intercom with Zapier](https://scratcher.io/help/integrations/intercom)

## Related articles

- [How integrations work](https://scratcher.io/help/integrations/how-integrations-work): Connect your email tool or CRM once, turn it on in each campaign, choose a list, map your fields and send only people who gave consent.
- [Check the delivery status and resend leads](https://scratcher.io/help/integrations/delivery-status): See which leads were sent to your tools, understand the error messages, fix the problem and send them again.
- [Ask for consent and add terms and conditions](https://scratcher.io/help/forms/consent-and-permissions): Add consent checkboxes for newsletters, link your terms, choose which checkbox subscribes people and send only people who said yes to your email tool.

## Still need help?

Real people are here to help. If you already use Scratcher, the quickest way is the chat inside the platform.

- **[Chat with us](https://platform.scratcher.io/login)**

    Log in and click the chat button in the bottom-right corner. Rex answers right away, and our team is a click away.
- **[Book a meeting](https://scratcher.io/book-a-meeting)**

    A free 30-minute video call with our team: a tour, campaign ideas or help with your setup.
- **[Email us](mailto:contact@scratcher.io)**

    Write to contact@scratcher.io and we will get back to you.
