Skip to templates
AI Craft Pad
CONNECTED SERVICE RECIPE · Sales operations

Contact form → HubSpot

Validate one contact, look up its email and create it in HubSpot only when absent.

Preview by defaultOwn accounts required for live modeMIT · AI Craft Pad
1Protected form
2Validate fields
3Search email
4Create or leave unchanged

What happens in live mode

A header-authenticated webhook or the manual sample supplies an event ID, email and name fields. The configured live branch searches HubSpot by normalized email, leaves existing contacts unchanged and creates a new contact only when no result exists. It never subscribes a contact to marketing or sends email.

The downloaded workflow is unpublished and its Configuration mode is preview. In preview, the service branch is skipped. The website demo below also stays local. Changing a JSON input cannot enable live mode; that setting belongs to the workflow owner.

LOCAL PREVIEW · NO SERVICE REQUESTS

Inspect the data before connecting.

Edit the synthetic input to see the proposed fields, rows or report text. This is a transformation preview, not a call to HubSpot, Google, a feed or Telegram. No credentials belong in this form.

Ready. Inspect the preview before any live configuration.

Connect and test in your own n8n

Import the file without publishing it. The workflow includes its source, validation, duplicate/empty handling where applicable, and destination nodes. Credentials are intentionally unbound; select your own credentials in n8n rather than editing secrets into Code nodes.

  1. Create a HubSpot private app with crm.objects.contacts.read and crm.objects.contacts.write. Store its token in an n8n HubSpot App Token credential; select it in Search contact and Create contact.
  2. Set a separate Header Auth credential on Authenticated form; share that header only with your authorized form backend. Keep the workflow unpublished while testing.
  3. Run Manual sample in preview mode. Inspect email, names and the proposed record. Then change only Configuration mode to live in a test account.
  4. Send one authorized event to the n8n test webhook URL. Confirm one contact is created. Repeat the event/email and confirm the existing-contact branch leaves it unchanged.
  5. Review the created contact in HubSpot before publishing the webhook. The form sender must supply its own stable event_id and respect your consent/retention process.
Download connected n8n recipe

SHA-256: 7d74f61f2a864e3400faf9ec95d0f4db73117655030f313f27f424444438308d

Failure, repeat runs and recovery

Search-before-create is not an atomic transaction. Concurrent events or HubSpot search-index delay can race; HubSpot may return a conflict. The workflow stops rather than automatically retrying a create. Reconcile the target contact before retrying any ambiguous timeout. Existing contacts are not updated.

HTTP request nodes have a 10-second timeout and stop on errors. Writes are not automatically retried. Authentication failures, rate limits and ambiguous timeouts require inspection in your own n8n execution view and destination account before rerunning. Do not turn a provider error into an empty successful lookup.

Data handling

Email and name fields are sent from your n8n instance to your HubSpot account in live mode. No marketing-consent status is inferred. Restrict webhook access and configure n8n execution-data retention.

The export disables saved success/error execution data and manual-execution saving. Your instance logs and provider retention still apply; review those settings for your account. No live account is connected to AI Craft Pad by this page.

Costs and requirements

Needs your own n8n instance and a HubSpot account with private-app API access. Hosting, HubSpot plan restrictions and API quotas apply; no paid AI model is used.

Continue with another task