> ## Documentation Index
> Fetch the complete documentation index at: https://docs.formflows.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Integrations

> Connect FormFlows.ai to the tools your team already uses — from Google Sheets to HubSpot to Zapier.

FormFlows.ai connects to third-party tools in three ways:

* **Native integrations** — built-in connections you configure directly in the workflow builder, with guided field-mapping UIs and no code required.
* **Zapier and Make** — middleware platforms that connect FormFlows.ai to thousands of apps not natively supported, using pre-built triggers and actions.
* **Webhooks and REST API** — a universal fallback for any system that can receive HTTP requests. If an integration isn't available natively or through Zapier, a webhook will reach it.

## Native integrations

<CardGroup cols={2}>
  <Card title="Slack" icon="slack">
    Post a message to any channel or DM whenever a form is submitted. Reference submission fields directly in the message body.
  </Card>

  <Card title="Google Sheets" icon="table">
    Append a new row to a spreadsheet for every submission, with form fields mapped to columns of your choice.
  </Card>

  <Card title="Airtable" icon="table-columns">
    Create or update records in any Airtable base. Map form fields to Airtable fields and use linked records.
  </Card>

  <Card title="HubSpot" icon="hubspot">
    Create or update contacts, deals, and tickets in HubSpot automatically when submissions arrive.
  </Card>

  <Card title="Zapier" icon="bolt" href="https://zapier.com/apps/formflows/integrations">
    Trigger any Zap from a form submission. Connect to 6,000+ apps without writing code.
  </Card>

  <Card title="Make (Integromat)" icon="circle-nodes" href="https://www.make.com/en/integrations/formflows">
    Build multi-step automations in Make using FormFlows.ai as a trigger or action module.
  </Card>

  <Card title="Notion" icon="file-lines">
    Create new pages or database entries in Notion from form submissions.
  </Card>

  <Card title="Salesforce" icon="cloud">
    Create leads, contacts, and opportunities in Salesforce. Supports custom objects and field mapping.
  </Card>
</CardGroup>

<Note>
  If the tool you need isn't listed here, use the [Zapier integration](https://zapier.com/apps/formflows/integrations) or [Make integration](https://www.make.com/en/integrations/formflows) to reach thousands of additional apps. For custom systems or internal tools, use a [webhook](/api-reference/webhooks) — it delivers submission data as a JSON POST to any URL that can receive HTTP requests.
</Note>

## Setting up an integration: Google Sheets walkthrough

The steps below show how to connect FormFlows.ai to a Google Sheet so that every new submission appends a row. The same pattern applies to other native integrations — connect your account, pick the destination, and map your fields.

<Steps>
  <Step title="Connect your Google account">
    1. Open your form and click the **Workflows** tab.
    2. Create a new workflow (or open an existing one).
    3. Add a trigger — typically **Form submitted (any submission)**.
    4. Click **+** to add an action step, then select **Google Sheets** from the integration list.
    5. In the step sidebar, click **Connect Google account**.
    6. A Google OAuth window opens. Sign in with the Google account that owns the spreadsheet you want to write to, and click **Allow** to grant FormFlows.ai permission to manage your sheets.

    Once authorized, your Google account appears in the **Connected account** dropdown. You can connect multiple Google accounts and choose between them per step.

    <Note>
      FormFlows.ai requests only the permissions it needs: read/write access to Google Sheets files. It does not access Gmail, Google Drive files other than Sheets, or any other Google services.
    </Note>
  </Step>

  <Step title="Choose the spreadsheet and sheet">
    After connecting your account, two dropdowns appear:

    * **Spreadsheet** — select from a list of spreadsheets in your Google Drive, or paste a spreadsheet URL directly.
    * **Sheet (tab)** — choose which tab within that spreadsheet to write to.

    FormFlows.ai reads the header row of the selected sheet to populate the column mapping in the next step. Make sure your sheet has a header row in row 1 before continuing.

    <Tip>
      If you're setting up a brand new sheet, create it in Google Sheets first with your desired column headers in row 1, then come back to this step. FormFlows.ai will detect those headers automatically.
    </Tip>
  </Step>

  <Step title="Map form fields to columns">
    The **Column mapping** section shows one row per column header detected in your sheet. For each column, use the dropdown on the right to select which form field (or submission metadata) should populate that column.

    For example:

    | Sheet column  | Mapped to                   |
    | ------------- | --------------------------- |
    | Timestamp     | `{{submission.created_at}}` |
    | Name          | `{{field.full_name}}`       |
    | Email         | `{{field.email}}`           |
    | Message       | `{{field.message}}`         |
    | Submission ID | `{{submission.id}}`         |

    You can also type a static value into a column mapping field — useful for tagging rows with a form name or environment label.

    Leave a column mapping blank to skip that column; FormFlows.ai will leave it empty in the new row.

    <Note>
      Column mappings reference field keys, not field labels. If a variable like `{{field.email}}` isn't resolving as expected, open your form's field settings and verify the field key matches exactly (field keys are case-sensitive).
    </Note>
  </Step>

  <Step title="Test the integration">
    Before enabling the workflow, run a test to confirm the mapping is correct:

    1. Click **Test workflow** in the top toolbar.
    2. Select a recent submission or click **Use sample data**.
    3. Click **Run test**.

    Check your Google Sheet — a new row should have appeared with the field values from the test submission. If the row wasn't added, click the Google Sheets step in the test results panel to see the error detail (common causes: the sheet tab was renamed after mapping, or the connected Google account lost authorization).

    Once the test passes, toggle the workflow to **Enabled**. Every future submission will automatically append a row to your sheet.
  </Step>
</Steps>

## Using Zapier for unsupported integrations

FormFlows.ai's Zapier integration lets you trigger a Zap from any new form submission. Inside Zapier, you can then connect to over 6,000 apps — including niche tools, internal software, and anything else in the Zapier library.

To get started:

1. In Zapier, create a new Zap and choose **FormFlows.ai** as the trigger app.
2. Select the **New Submission** trigger event.
3. Connect your FormFlows.ai account using your API key (find it under **Settings → API**).
4. Choose which form to watch.
5. Add any Zapier action steps you need.

All form fields are passed to Zapier as individual data properties, so you can map them to any field in your downstream app.

## Webhooks as a universal fallback

If you need to send submission data to a system not covered by native integrations or Zapier, use a **Webhook** action step in your workflow. FormFlows.ai will POST the full submission payload as JSON to any URL you specify, with optional custom headers for authentication.

Webhook payloads include every field value, submission metadata, and form details. You can also configure the request body manually using a JSON template with `{{field.*}}` variables if your target system requires a specific format.

See the [Webhooks reference](/api-reference/webhooks) for the full payload schema, authentication options, and retry behavior.
