Skip to main content
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

Slack

Post a message to any channel or DM whenever a form is submitted. Reference submission fields directly in the message body.

Google Sheets

Append a new row to a spreadsheet for every submission, with form fields mapped to columns of your choice.

Airtable

Create or update records in any Airtable base. Map form fields to Airtable fields and use linked records.

HubSpot

Create or update contacts, deals, and tickets in HubSpot automatically when submissions arrive.

Zapier

Trigger any Zap from a form submission. Connect to 6,000+ apps without writing code.

Make (Integromat)

Build multi-step automations in Make using FormFlows.ai as a trigger or action module.

Notion

Create new pages or database entries in Notion from form submissions.

Salesforce

Create leads, contacts, and opportunities in Salesforce. Supports custom objects and field mapping.
If the tool you need isn’t listed here, use the Zapier integration or Make integration to reach thousands of additional apps. For custom systems or internal tools, use a webhook — it delivers submission data as a JSON POST to any URL that can receive HTTP requests.

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.
1

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.
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.
2

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.
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.
3

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 columnMapped 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.
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).
4

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.

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 for the full payload schema, authentication options, and retry behavior.