# Google Forms, HubSpot, Typeform, JotForm & Shopify

> Connect each source and map its fields to contact fields.

_Source: https://hexafloww.com/docs/connectors/form-and-crm-connectors_

---

Each connector is set up on its own page under `/admin/connectors`. The pattern is the same: connect, map fields, done.

## Google Forms

1. Connect your Google account and pick the form.
2. Map the form's questions to contact fields (email is required).
3. HexaFloww checks for new responses every 15 minutes.

## HubSpot

1. Connect via HubSpot sign-in.
2. Choose which contact properties to bring across.
3. Synced hourly.

## Typeform

1. Connect and select the form.
2. Map fields.
3. Typeform pushes each new response to HexaFloww instantly (webhook).

## JotForm

Same as Typeform — connect, select the form, map fields, instant via webhook.

## Shopify

1. Enter your store domain and an Admin API access token (it starts with `shpat_`).
2. Choose what to sync: **customers**, **orders**, and optionally **products** (for the WhatsApp catalog — needs the `read_products` scope on the token).
3. Customer and order changes arrive via webhooks. Use **Sync Contacts Now** for a manual customer pull, and **Sync Catalog Now** to refresh the product catalog.

Order and cart events can also trigger automations — see [Shopify order & abandoned-cart messages](https://hexafloww.com/docs/automations/shopify-messages.md). Product sync feeds [WhatsApp Commerce](https://hexafloww.com/docs/whatsapp/whatsapp-commerce.md).

## Field mapping tips

- Always map **email** — it's how contacts are matched and de-duplicated.
- Map phone in international format where possible, so WhatsApp features can use it.
- Unmapped fields can still come in as custom fields.

## Common problems

- **Webhook connector not syncing** — the webhook secret doesn't match, or the source's webhook was removed. Reconnect.
- **Everything skipped** — no email field mapped.
- **Sync log shows errors** — open the log for the per-row reason.
