You might not have access to this feature!

This feature is only available on our premium and enterprise plans. [Talk to our team](mailto:premium@customer.io) about upgrading your plan.

# HubSpot forms

[PremiumThis feature is available for Premium plans.](/accounts-and-workspaces/plan-features/) [EnterpriseThis feature is available for Enterprise plans.](/accounts-and-workspaces/plan-features/) [BetaThis feature is new and we're actively working on it.](/beta-experimental-features/#beta-features)

Our HubSpot integration doesn’t currently make it easy to sync form submissions. We’re working on that while we’re in beta. But, if you’re a HubSpot premium or enterprise user, you can send form submissions using a [HubSpot workflow](https://knowledge.hubspot.com/workflows/create-workflows) to support form submissions in the meantime.

## How it works[](#how-it-works)

You’ll set up a workflow in HubSpot that sends a webhook to Customer.io when someone submits your form. Then, in Customer.io, you can:

*   Convert that webhook to an event that triggers downstream campaigns
*   Store attributes on your audience’s profiles in Customer.io. These attributes can add people to segments, trigger campaigns, or personalize messages.

## 1\. Create your HubSpot workflow[](#1-create-your-hubspot-workflow)

If you’re unfamiliar with HubSpot workflows, check out [HubSpot’s documentation](https://knowledge.hubspot.com/workflows/create-workflows-from-scratch). In this case, we’ll create a workflow where the trigger is a form submission and the action is to send a webhook to Customer.io.

1.  In HubSpot, go to *Automation > Workflows*.
2.  In the upper right, click **Create workflow** and select **From scratch**.
3.  Select the **Websites & media** option and continue setting up your form submission trigger.
4.  Add the *Send a webhook* action to your workflow but don’t configure it yet. You’ll need to get your webhook address from Customer.io first.

## 2\. Create your Customer.io webhook[](#2-create-your-customerio-webhook)

In Customer.io, you’ll create a new campaign. This will generate a webhook address that HubSpot will call when people submit your form.

1.  Go to **Campaigns** and click **Create Campaign**.
2.  Click **Choose Trigger** and select **Webhook**.
    
    [![The list of trigger options, with the webhook option at the bottom hovered](https://docs.customer.io/images/hubspot-form-setup-trigger.png)](#2f3f38cd42ae58fdc1a9304c9134bf49-lightbox)
    
3.  Copy the webhook address and click **Save and build workflow**.
    
    [![the webhook URL for a Customer.io campaign](https://docs.customer.io/images/hubspot-form-copy-webhook.png)](#ee83cd07801ee8e40296d8d1f74e8313-lightbox)
    

## 3\. Finish setting up your HubSpot workflow[](#3-finish-setting-up-your-hubspot-workflow)

Go back to your HubSpot workflow. In your *Send a webhook* action:

1.  Set the method to **POST**.
2.  Set the *Webhook URL* to [the webhook URL you previously copied](#2-create-your-customerio-webhook).
3.  Include the form field properties you want to send to Customer.io, or select **Include all \[object\] properties** to send all of the properties from the form submission.

Now that you’ve set up your workflow in HubSpot, send a test form submission. This provides your Customer.io campaign with sample data that’ll help you map form data to attributes or event properties in Customer.io.

When you send a test, you’ll see your sample data in your Customer.io campaign.

[![The list of actions in a workflow, with the send a webhook action at the bottom hovered](https://docs.customer.io/images/hubspot-form-sample-data.png)](#ab10e3989f5bad217087d588b79e050c-lightbox)

## 4\. Finish setting up your Customer.io campaign[](#4-finish-setting-up-your-customerio-campaign)

Now return to your Customer.io campaign. Here, you can map the incoming form submission to an event that can trigger downstream campaigns, attributes that you store on your audience’s profiles in Customer.io—or both.

[![an example campaign workflow containing 'HubSpot form event' and 'Update attributes from HubSpot form' actions](https://docs.customer.io/images/hubspot-form-campaign.png)](#a2ebf5188a9d13a68811f7eab7dcb286-lightbox)

**Send an event**:

1.  Add a **Send Event** action to your workflow. This converts the incoming webhook to an event that can trigger campaigns in Customer.io.
2.  Set the *Event Name* to a name that you want to use to trigger downstream campaigns or use in segments.
3.  Set *Event Attribute* names to the values you want to use to personalize downstream campaigns.
4.  Set the *Value* to the field values from the event.

[![an example event generated by a campaign from an incoming HubSpot webhook](https://docs.customer.io/images/hubspot-form-send-event.png)](#65814f7dc4c5dd5607004be00d9008b1-lightbox)

**Set attributes**:

1.  Add a **Create or update person** action to your workflow.
2.  Set the **Identifier** for the person you want to add or update based on your HubSpot form—a person’s email or their canonical ID.
3.  Click **Add attribute** and set the values you want to store on the person’s profile from the incoming form submission.

[![an example of setting attributes on a person's profile from an incoming HubSpot webhook](https://docs.customer.io/images/hubspot-form-update-person.png)](#242a377073d47eaf794f103515154040-lightbox)