Connect FlutterFlow to Make (Integromat) by creating a Custom Webhook trigger in a Make scenario and adding a single POST API Call in FlutterFlow pointing at the webhook URL. FlutterFlow fires the webhook with your app data; Make handles all downstream integrations (Sheets, Slack, CRMs) inside its visual scenario builder. No Firebase proxy needed — all API keys live inside Make.
| Fact | Value |
|---|---|
| Tool | Integromat (Make) |
| Category | Automation |
| Method | FlutterFlow API Call |
| Difficulty | Beginner |
| Time required | 15 minutes |
| Last updated | July 2026 |
Make is the inverse of most integrations: FlutterFlow is the caller, not the receiver
Most integration pages in this series show FlutterFlow calling a third-party API. Make flips that pattern: FlutterFlow sends a single POST request to a Make Custom Webhook URL, and Make handles everything else — connecting to Google Sheets, sending Slack messages, creating CRM records, triggering email sequences, and anything else from Make's library of 1,800+ app connectors.
This inversion has a liberating effect on your FlutterFlow security model. With Okta, Auth0, or Authorize.Net, you need a Firebase Cloud Function to hold secret credentials before FlutterFlow can call the API. With Make, all the downstream API keys (Slack token, Sheets OAuth, HubSpot API key) live inside Make's connected account system — they never appear in FlutterFlow at all. The webhook URL is the only thing FlutterFlow needs, and while it should be treated as a shared secret (anyone with the URL can trigger your scenario), there is no live-charge credential or admin token to protect.
The most important behavioral characteristic to understand is that the default Make webhook flow is fire-and-forget: FlutterFlow gets an instant Accepted response and the scenario runs asynchronously in Make. If you need a value back (a created record ID, a computed result, a confirmation token), you must add a Webhook Response module as the last step in your Make scenario and set the webhook to respond synchronously — then FlutterFlow can read the returned JSON from the API Call response.
Make pricing starts with a free tier offering 1,000 operations per month with 2 active scenarios (verify current limits at make.com/en/pricing). Paid plans start from approximately $9/month for higher operation limits. Operations are consumed per module run — a scenario with 5 modules uses 5 operations per execution, so a busy app can exhaust a free plan's monthly quota quickly.
Integration method
FlutterFlow posts JSON data to a Make Custom Webhook URL — a single API Call in FlutterFlow's API Calls panel. Make receives the payload, routes it through a visual scenario to downstream apps (Google Sheets, Slack, HubSpot, email, etc.), and optionally sends a JSON response back to FlutterFlow via a Webhook Response module. Because all downstream API keys live inside Make's connected accounts, there is nothing sensitive in the FlutterFlow app — the webhook URL itself is the only credential, and it is a shared secret rather than a public key.
Prerequisites
- A Make account (free tier at make.com — no credit card required for the free plan)
- A FlutterFlow project on any plan (API Calls are available on all plans)
- The downstream apps you want to connect already added to Make's connected accounts (Google, Slack, etc.)
- Basic familiarity with FlutterFlow's Action Flow Editor for binding the webhook call to a button or event
Step-by-step guide
Create a Make scenario with a Custom Webhook trigger
Log in to your Make account at make.com. Click Create a new scenario. On the blank scenario canvas, click the large + circle in the center to choose your first module — this is the trigger. In the module search, type 'webhook' and select Webhooks → Custom Webhook from the results. In the Custom Webhook configuration panel, click Add → give the webhook a descriptive name (e.g., FlutterFlow-UserSignup) → Save. Make immediately generates a unique webhook URL that looks like: https://hook.eu2.make.com/abc123xyz... (the region subdomain may differ based on your Make account's data region — eu2, us1, etc.). Click Copy address to clipboard and save the URL — this is what you will paste into FlutterFlow in the next step. IMPORTANT: Do not close this scenario yet. After configuring the FlutterFlow API Call (Step 2), you will come back to run a test POST from FlutterFlow so Make can 'determine the data structure' of your webhook payload. Make cannot map fields to downstream modules until it has seen at least one real sample payload. The webhook module will show 'Waiting for data...' until that test is sent. Note: Make scenarios must be activated (the toggle in the top-right of the scenario editor set to ON) before they run in production. While building, leave it off to avoid consuming operations on test runs.
Pro tip: Name your webhook clearly (app name + event type) so it is identifiable in your Make webhook list. Once you have multiple FlutterFlow events routing to Make, clear naming prevents routing them to the wrong scenarios.
Expected result: A Make scenario is open with a Custom Webhook trigger module showing your unique webhook URL. The module displays 'Waiting for data...' — ready to receive the first test payload.
Add the POST API Call in FlutterFlow
In FlutterFlow, open the left nav and click API Calls → + Add → Create API Group. Name the group Make. Set the Base URL to the Make webhook URL you copied (e.g., https://hook.eu2.make.com/abc123xyz). Leave all authentication headers empty — the webhook URL is the only credential. Add a new API Call inside the group. Click + Add → Create API Call. Name it sendEvent (or something descriptive for the specific event you are sending). Set the Method to POST. Leave the endpoint path field empty — the Base URL is the complete URL. In the Body tab, set the body type to JSON. Define the JSON body with the fields you want to send to Make. For example, a signup event might look like: { "event": "user_signup", "name": "{{ name }}", "email": "{{ email }}", "plan": "{{ plan }}" } In the Variables tab, add the corresponding variables (name, email, plan — all String type). These become the binding points in your Action Flow Editor where you connect widget values or App State fields. Leave the Response & Test tab for now — you will parse the response in Step 4 if you add a Webhook Response module. For fire-and-forget scenarios, no response parsing is needed; FlutterFlow will receive a 200 Accepted response automatically. Click Save to save the API Call. You now have a complete Make webhook API Call ready to trigger from any widget action.
Pro tip: Structure your JSON payload with a top-level 'event' field (e.g., 'user_signup', 'order_placed', 'ticket_submitted'). This lets a single Make scenario use a Router module to branch into different flows based on the event type — giving you one webhook URL for multiple event types.
Expected result: A 'Make' API Group appears in FlutterFlow with a sendEvent POST API Call configured. The call has variables matching the JSON body fields and is ready to be wired to a button action.
Fire a test POST so Make determines the data structure
Before you can build the downstream modules in Make, Make needs to receive at least one real sample payload to understand the field names and data types in your webhook data. This is a required step — you cannot map fields to a Sheets column or a Slack message template until Make has seen the structure. In FlutterFlow's API Calls panel, open the sendEvent API Call. Go to the Response & Test tab. In the Variables section, fill in test values for each variable (e.g., name = 'Test User', email = 'test@example.com', plan = 'starter'). Click Send Test Request. If the Function is configured correctly and your Make scenario is on the canvas with the webhook module showing 'Waiting for data...', Make should receive the test payload within a few seconds. Go back to your Make scenario tab — the webhook module should now show a green checkmark and the list of fields it detected (event, name, email, plan). If Make does not receive the test: verify the webhook URL in FlutterFlow's Base URL exactly matches the URL Make generated (no trailing slash differences, correct region subdomain). Also confirm your Make scenario is saved (click Save in Make's scenario editor) — Make only listens for test data when the scenario is open in the editor, even if the scenario is not activated. Once Make has determined the data structure, the field names from your payload are available to map to any downstream module. You can now build the scenario by adding modules: a Google Sheets 'Add a Row' module, a Slack 'Create a Message' module, an HTTP module to call another API — whatever your automation needs.
Pro tip: If you change your JSON payload structure later (add or rename a field), you must send another test payload to Make so it can update its data structure mapping. Modules connected to the webhook may show errors until the new structure is re-determined.
Expected result: The Make scenario's Custom Webhook module shows a green checkmark with the detected fields (event, name, email, plan) listed and available to map to downstream modules.
Add downstream modules to the Make scenario
Now build the automation inside Make. Click the + circle after the webhook module to add the first downstream module. Search for the app you want to connect — Slack, Google Sheets, HubSpot, Gmail, Airtable, or any of Make's 1,800+ connectors. For a Google Sheets example: select Google Sheets → Add a Row. Connect your Google account if you have not already. Choose the spreadsheet and sheet tab. Map the columns: for the Name column, click the field and select the name variable from your webhook payload (shown in the data structure panel). Map email and plan similarly. Click OK. Add another module for Slack: select Slack → Create a Message. Choose the channel. In the Text field, compose the message with Make's variable mapping: "New signup: {{name}} ({{email}}) on the {{plan}} plan". Click OK. Make executes modules left to right in your scenario. Each module run consumes one operation from your monthly quota. A scenario with 3 modules uses 3 operations per webhook trigger. To activate the scenario for production: click the ON toggle in the bottom-left of the Make scenario editor. Once active, every POST from FlutterFlow to the webhook URL triggers the full scenario. While the scenario is OFF, Make receives the data but does not process it (useful for testing without consuming quota). If you want the Make scenario to return data to FlutterFlow, add a Webhooks → Webhook Response module as the LAST module. Configure the Response body with the fields you want to return (e.g., {"ticketId": "{{generatedId}}"}). Change the webhook's Response setting to 'Respond immediately' off — this makes the webhook wait for the scenario to complete before sending the response. See Step 5 for wiring the response in FlutterFlow.
Pro tip: Use Make's built-in error handling: click the three dots on any module and select Add error handler → Ignore (for non-critical steps) or Resume (to continue the scenario even if one module fails). This prevents a Slack API hiccup from blocking the Sheets row from being added.
Expected result: The Make scenario has downstream modules configured and activated. A test run from FlutterFlow creates a Sheets row and sends a Slack message. The scenario shows green execution history in Make's run history panel.
Read the Webhook Response in FlutterFlow (optional) and add security
If your Make scenario ends with a Webhook Response module, FlutterFlow can read the returned JSON. In FlutterFlow's API Calls panel, open the sendEvent call and go to Response & Test. After triggering a test that goes through the full Make scenario (with the Webhook Response module active), paste the returned JSON into the Sample Response field and click Generate JSON Paths. FlutterFlow creates extractors for each returned field (e.g., $.ticketId, $.status). In your Action Flow, after the sendEvent API Call step, add an action that stores the extracted response fields in Page State variables and displays them to the user — a success dialog showing the ticket ID, a confirmation Text widget, or a navigation to a result screen. Security: by default, the Make webhook URL is unauthenticated — anyone who discovers the URL can trigger your scenario. For automations involving sensitive data or operations with real downstream effects, add a simple token check in Make: 1. In FlutterFlow's API Call, add a header: X-Auth-Token with value {{ authToken }}. Add authToken as a variable and set a hard-coded default value in the App Values (not a secret key, just a shared string like a random UUID). 2. In Make, add a Filter after the webhook module: only continue if {{headers.x-auth-token}} equals your expected token value. This stops random webhook triggers without needing a full Firebase Function proxy. It is sufficient for most FlutterFlow → Make scenarios because the operations are not financial or user-account-modifying. If you would rather skip the webhook security setup and automation logic entirely, RapidDev's team can set up Make scenarios alongside FlutterFlow apps quickly — book a free scoping call at rapidevelopers.com/contact.
Pro tip: Operations quota management: if your FlutterFlow app triggers the webhook frequently, check Make's run history to count operations per execution. On the free plan (1,000 ops/month), a 5-module scenario triggered 200 times exhausts the quota. Upgrade to a paid plan if your app usage demands it.
Expected result: The FlutterFlow action flow reads the Make Webhook Response (if applicable) and displays the returned value to the user. A token header check prevents unauthorized webhook triggers in Make's scenario filter.
Common use cases
New user signup notification to Slack
When a user completes onboarding in a FlutterFlow app, a POST is fired to a Make webhook with the user's name and email. Make's scenario routes this to a Slack message in a #new-users channel, appends a row to a Google Sheet, and adds the contact to HubSpot — all without any of those API keys appearing in FlutterFlow.
Build an onboarding complete action that fires a Make webhook with the user's name, email, and plan type when they finish the onboarding flow, so the team gets a Slack notification.
Copy this prompt to try it in FlutterFlow
Support ticket creation with auto-assigned ID
A FlutterFlow customer app has a Submit Ticket button that POSTs the issue category, description, and user ID to a Make webhook. Make creates the ticket in Zendesk, appends a log row to Sheets, and returns the ticket ID in a Webhook Response. The FlutterFlow app reads the ticket ID from the response and shows it to the user as a confirmation reference.
Build a support form where tapping Submit sends the form data to a Make webhook, waits for the response, and shows the returned ticket ID in a success dialog.
Copy this prompt to try it in FlutterFlow
Order placed → fulfillment workflow
A FlutterFlow e-commerce app fires a Make webhook when an order is placed. The Make scenario routes the order data to an inventory management sheet, sends a fulfillment email via Gmail, updates an Airtable shipment tracker, and posts an ops team notification in Slack — four operations triggered by a single FlutterFlow POST.
Build a checkout completion action that POSTs order details (items, total, shipping address, customer email) to Make and triggers the fulfillment workflow. No response needed — fire and forget.
Copy this prompt to try it in FlutterFlow
Troubleshooting
FlutterFlow sends the POST but Make's scenario does not trigger — execution history shows nothing
Cause: The Make scenario is not activated (the ON/OFF toggle in the scenario editor is set to OFF), or the webhook URL in FlutterFlow's API Call does not exactly match the URL Make generated.
Solution: In your Make scenario editor, check the toggle in the bottom-left — it must be set to ON for live execution. For testing in the editor, the scenario does not need to be ON but the editor must be open on that tab. Double-check the FlutterFlow API Group Base URL against Make's webhook URL character by character — trailing slashes or region subdomain differences cause silent failures.
Make shows 'Received' for the webhook but downstream module fields are empty or show mapping errors
Cause: Make has not yet 'determined the data structure' from a real payload, or the data structure was set from an earlier test with different field names than the current payload.
Solution: In Make's scenario editor, click the Custom Webhook module and select Re-determine data structure. Then send a fresh test POST from FlutterFlow's API Call test panel with the current payload structure. Once Make receives it, the field names update and downstream mappings should resolve.
FlutterFlow's API Call returns a timeout error when a Webhook Response module is configured
Cause: The Make scenario is taking longer than FlutterFlow's API Call timeout to execute (e.g., a slow downstream module like a complex Google Sheets operation). The default FlutterFlow API Call timeout is typically 30 seconds.
Solution: Optimize the Make scenario by removing unnecessary modules or splitting long operations into separate scenarios. For operations that genuinely take longer, switch to fire-and-forget (remove the Webhook Response module) and notify the user asynchronously (e.g., via a push notification sent through a separate Make scenario completion step).
Make's free plan scenario stops triggering mid-month
Cause: The 1,000 operations/month free tier limit has been reached. Make pauses scenario execution when the quota is exhausted.
Solution: Check Make Dashboard → Usage to see remaining operations. Upgrade to a paid plan if your app needs more operations, or optimize existing scenarios to use fewer modules per execution. Consider batching events (collect multiple app events and send them as a single webhook POST array) to reduce total webhook trigger counts.
Best practices
- Treat the Make webhook URL as a shared secret — store it as a FlutterFlow App Value constant rather than hardcoding it in multiple places, so you can update it in one spot if you need to regenerate it.
- Add a simple X-Auth-Token header check in Make's scenario filter for any webhook that triggers significant downstream effects — it prevents unauthorized triggers without needing a Firebase Function proxy.
- Use a top-level 'event' field in your JSON payload so a single webhook URL can serve multiple event types routed by a Make Router module, reducing the number of separate webhooks you need to manage.
- Always send a test payload from FlutterFlow after any change to your JSON payload structure — Make's field mappings break silently when field names change and the data structure has not been re-determined.
- Monitor your Make operations quota in the Dashboard, especially during periods of high app usage — the free tier's 1,000 ops/month is easily exhausted by multi-module scenarios on an active app.
- Build Make scenarios in inactive state while developing and only activate them for production — this prevents test events from triggering real Slack messages, real Sheets rows, and real emails during development.
- For synchronous responses, keep your Make scenario fast — if a Webhook Response module is configured, FlutterFlow waits for the full scenario to complete, so slow downstream modules increase perceived app latency.
Alternatives
Firebase Cloud Functions provide a programmable, code-based alternative to Make for backend automation — use Firebase when you need custom logic, database writes, or operations not covered by Make's app connectors.
Connect directly to Salesforce via a Firebase Function proxy if you need CRM-specific features (opportunity tracking, reports, custom objects) beyond what Make's Salesforce connector exposes.
Frequently asked questions
Do I need a Firebase Cloud Function to connect FlutterFlow to Make?
No — this is the one integration in the FlutterFlow security landscape where a Firebase Function proxy is NOT required for the basic connection. The Make webhook URL is the only credential FlutterFlow needs, and all downstream API keys (Slack, Sheets, HubSpot) live inside Make's connected account system. A Firebase Function is only needed if you want to add server-side logic between FlutterFlow and Make that Make's modules cannot handle.
What happens if Make is down when FlutterFlow fires the webhook?
Make processes webhooks from a queue with a configurable retention period (check your Make plan's webhook queue settings). If Make's webhook receiver is temporarily unavailable, the POST from FlutterFlow will fail with a connection error. For critical events, implement retry logic in your FlutterFlow Action Flow using a conditional retry action, or log failed webhook POSTs to Firestore for manual reprocessing. Make's webhook history panel shows which triggers were received successfully.
Can Make send data back to FlutterFlow, not just receive it?
Yes, in two ways: synchronously via the Webhook Response module (Make returns a JSON body before the FlutterFlow API Call times out), or asynchronously by triggering a separate FlutterFlow deep link or push notification from within the Make scenario. The synchronous path works for short scenarios; for longer operations, use a fire-and-forget webhook and notify the user through another channel.
Is Make the same as Integromat?
Yes — Make.com was rebranded from Integromat in 2022. The underlying platform, account data, and scenarios are the same. Some older tutorials and community posts still refer to it as Integromat; the webhook URLs and API structure are identical. If you have an existing Integromat account, it is now your Make account.
How many operations does a typical FlutterFlow → Make scenario use?
Each module in the Make scenario consumes one operation per execution, plus one for the webhook trigger itself. A scenario that receives the webhook, adds a Sheets row, sends a Slack message, and adds a HubSpot contact uses 4 operations per FlutterFlow event. With the free plan's 1,000 ops/month, that supports approximately 250 FlutterFlow-triggered events per month before hitting the quota. Check current Make plan limits at make.com/en/pricing.
Talk to an Expert
Our team has built 600+ apps. Get personalized help with your project.
Book a free consultation