- 5
+ 4
Publish and export
diff --git a/overview/integrations/how-to-add-form-submission-into-your-hubspot-crm.mdx b/overview/integrations/how-to-add-form-submission-into-your-hubspot-crm.mdx
index 99e6af3..f41d0a3 100644
--- a/overview/integrations/how-to-add-form-submission-into-your-hubspot-crm.mdx
+++ b/overview/integrations/how-to-add-form-submission-into-your-hubspot-crm.mdx
@@ -1,41 +1,91 @@
---
-title: "How to add Form Submission into your Hubspot CRM"
-description: "Send Architect form submissions to HubSpot using a webhook-triggered workflow"
+title: "How to Integrate Leads into HubSpot with Clay"
+description: "Send Architect form submissions to HubSpot contacts using Clay as a middleware"
+sidebarTitle: "HubSpot with Clay"
---
-You should be able add the form responses into your Hubspot contacts list through the Automation Workflow feature in Hubspot.
+## Part 1: Create a HubSpot Legacy App
-**Step 1: (Hubspot) Create a New Workflow**
+
+
+ Go to **Development > Legacy Apps**.
+
-- Navigate to Automations → Workflows
-- Create a new workflow from scratch
-- Select Custom trigger type
+
+ Name it **Architect** and add these scopes:
-**Step 2: (Hubspot) Configure External Event Trigger**
+ - `crm.objects.contacts.write`
+ - `crm.objects.contacts.read`
+
-- Choose "Receive a webhook from an external app" from the custom events and external events options
-- Click "Add a webhook"
-- Name the webhook (e.g., "Architect")
-- Click Continue
-- Copy the generated webhook URL
+
+ Open the **Auth** tab, click **Show Token**, and copy it. This is your Bearer Token.
+
+
-**Step 3: Set Up the Architect Platform**
+## Part 2: Set Up Clay
-- Go to your Architect platform Settings → Webhooks
-- Create a new webhook
-- Paste the HubSpot webhook URL
-- Subscribe to "form submitted" event
-
- 
-
+
+
+ In Clay, create a new custom table. Add a column: **Add Enrichment > Webhook**. Copy the Webhook URL.
+
-**Step 4: Test the Connection**
+
+ In Architect, go to **Settings > Webhooks**, create a new webhook, and paste the Clay Webhook URL. Send a test to confirm it works.
+
-
+
+ Back in Clay, add a new column: **Add Enrichment > HTTP API**. Select **HTTP API (Headers)** and create a new account.
+
-- In Architect Settings, send a test webhook request. Verify it's received in HubSpot
+
+ - **Method:** `POST`
+ - **Endpoint:** `https://api.hubapi.com/crm/v3/objects/contacts`
+ - **Body:**
-**Step 5: Configure Data Fields in HubSpot**
+ ```json
+ {
+ "properties": {
+ "email": "email",
+ "firstname": "firstName",
+ "lastname": "lastName",
+ "company": "companyName",
+ "hs_google_click_id": "gclid"
+ }
+ }
+ ```
-- Set up the form to capture data.
-- You can optionally add additional fields if your form has multiple fields.
+ Map each field to the matching property from the webhook data.
+
+
+ If your form only captures emails:
+
+ ```json
+ {
+ "properties": {
+ "email": "email"
+ }
+ }
+ ```
+
+
+
+
+ | Header | Value |
+ | --- | --- |
+ | `Content-Type` | `application/json` |
+ | `Authorization` | `Bearer YOUR_ACCESS_TOKEN` |
+
+
+ Replace `YOUR_ACCESS_TOKEN` with the token from Part 1.
+
+
+
+
+
+Architect webhooks also pass UTM parameters (such as `utm_source`, `utm_medium`, `utm_campaign`, and `gclid`) with each form submission, so you can map these to HubSpot contact properties for full attribution tracking.
+
+
+
+Don't have Clay? Reach out to the Architect team and we can set this up for you.
+