Connect Cflow with 1000+ Applications Using Make as Middleware
This guide provides a complete walkthrough for integrating Cflow workflows with any application available on the Make platform. Whether you need to push approved purchase requests into an accounting system, notify a Slack channel when a new request is submitted, or sync CRM records back into Cflow, the patterns and examples here will help you build, test, and go live with confidence.
1. How the Integration Works
Make is the automation middleware between Cflow and your external business applications. A Cflow workflow event triggers a Make scenario, which then transforms, routes, and delivers data to one or more connected apps. The reverse is also possible — an external app event can trigger Make to create or update a Cflow record.
Three Integration Directions
| Direction |
Flow |
Example |
| Cflow as Source |
Cflow trigger → Make scenario → Target app action |
Purchase request approved → create invoice in Xero |
| Cflow as Destination |
External app trigger → Make scenario → Cflow action |
Google Form submitted → create Cflow request |
| Bi-directional Sync |
Cflow sends data out; Make writes results back to Cflow |
Create invoice → write invoice number back to Cflow record |
Key Concept: You do not need to write code. Make provides a visual drag-and-drop scenario builder. All field mapping, conditional routing, and data transformation happen inside the Make interface.
2. Key Terms in Make
Understanding these terms will help you follow every section of this guide.
| Term |
What It Means |
Cflow Context |
| Scenario |
A complete automation workflow in Make |
One scenario moves Cflow request data to one or more apps |
| Module |
A single app step inside a scenario |
Cflow trigger module, Google Sheets add-row module, etc. |
| Connection |
Authorized credential link between Make and an app |
Cflow connection uses API Key, User Key, and User Name |
| Trigger |
The first module that starts the scenario |
Watch Process Initiate or Watch Process Approval |
| Action |
A module that performs work after the trigger |
Create a row, send a message, upload a file, create an invoice |
| Webhook |
A URL that receives real-time event data |
Cflow calls the Make webhook URL when a request is submitted |
| Bundle |
One output data package from a module |
One submitted Cflow request = one bundle |
| Iterator |
Splits an array into separate bundles |
Process each Cflow line item one by one |
| Array Aggregator |
Groups multiple bundles back into one array |
Combine line items into a single invoice payload |
| Router & Filter |
Splits a scenario into conditional branches |
Send requests under 10,000 to Sheet A, above 10,000 to Sheet B |
3. Prerequisites
Ensure the following are in place before you begin building your integration:
- Active Cflow account with access to the required workflow and process stage.
- Cflow user with permission to access Admin, Connect, and workflow configuration.
- Make account with permission to create scenarios, connections, and webhooks.
- Target application account (Google Sheets, Teams, Slack, Xero, Salesforce, etc.).
- Cflow API Key, User Key, and User Name for the integration connection.
- Sample Cflow request data for testing, including line-item/table sections.
- A field mapping sheet: Cflow field name → target app field name, data type, required/optional.
Security: Store API Key, User Key, and User Name only inside Make connections or a secure credential vault. Never keep them in plain-text documents, emails, tickets, or screenshots.
4. Cflow Modules Available in Make
The Cflow app inside Make provides the following trigger and action modules:
| Module |
Type |
When to Use |
| Watch Process Initiate |
Trigger |
Starts a scenario when a new Cflow request is created/submitted |
| Watch Process Approval |
Trigger |
Starts a scenario when a Cflow process receives approval |
| Create a Record |
Action |
Creates a new Cflow record using data from another app |
| Update a Record |
Action |
Updates an existing Cflow record (write back invoice IDs, links, statuses) |
| Make an API Call |
Action |
Runs a custom API request when standard modules do not cover the need |
5. Step-by-Step Setup: Cflow → Make → Target App
Follow these steps to build your first integration scenario:
Part A: Configure the Make Scenario
- Log in to Make and open your organization/team workspace.
- Click “Create scenario” to start a new automation.
- Add the Cflow app as the first module.
- Select “Watch Process Initiate” (for new submissions) or “Watch Process Approval” (for approvals).
- Create or select your Cflow connection by entering your API Key, User Key, and User Name.
- Create a webhook inside the Cflow module — name it clearly (e.g., WH-Cflow-Purchase Request-Submit).
- Select the workflow name and the process/stage that must trigger the scenario.
- Copy the Make webhook URL generated for the Cflow trigger.
Part B: Configure Cflow to Send Data
- In Cflow, open the required workflow/process and navigate to Connect.
- Add or configure the Webhook action after the relevant event (e.g., Submit Request).
- Paste the Make webhook URL into the webhook configuration field.
Part C: Test and Activate
- Return to Make and click “Run once” to put the scenario in listening mode.
- Submit a test request in Cflow with realistic data.
- Check the Cflow module output in Make — confirm that all fields, tables, Record ID, and dates are visible.
- Add your target app action module (e.g., Google Sheets → Add a Row) and map Cflow fields to target fields.
- Run the complete scenario once, validate the output in the target app, then turn the scenario ON.
Tip: Always test with “Run once” before turning a scenario ON. This ensures your field mapping is correct and prevents junk data from entering production systems.
6. Detailed Example: Cflow → Google Sheets with Line Items
This example demonstrates a common pattern: when a Cflow request is submitted, Make writes header-level fields to one Google Sheet tab and routes each line item to conditional tabs based on the item’s total value.
6.1 Cflow Data Structure
| Section |
Fields |
Description |
| Header / Main |
Submitted Date, User, Email, Request Mode, Has Line Items, Items Total, Record ID |
One row per Cflow request. Tracks request-level data. |
| Table / Line Items |
Item, Qty, Unit Cost, Total |
Multiple rows under one request. Must be handled as an array. |
| System / Stage |
Stage status, Approved By, Approved Date, Comments |
Used for approval routing, audit trails, and status updates. |
6.2 Scenario Module Flow
| Step |
Make Module |
What It Does |
| 1 |
Cflow – Watch Process Initiate |
Receives the submitted request as a data bundle |
| 2 |
Google Sheets – Add a Row (Header tab) |
Writes request-level fields (User, Email, Record ID, etc.) to the Header sheet |
| 3 |
Iterator |
Splits the Cflow table/line-item array into individual bundles — one per line item |
| 4 |
Router |
Creates conditional branches based on Item’s Total value |
| 5A |
Google Sheets – Add a Row (Route 1) |
Writes line items where Items Total ≤ 10,000 to the lower-value sheet tab |
| 5B |
Google Sheets – Add a Row (Route 2) |
Writes line items where Items Total > 10,000 to the higher-value sheet tab |
6.3 Field Mapping — Header Fields
| Google Sheet Column |
Mapped From (Cflow Output) |
| User |
User |
| Email |
Email |
| Request Mode |
Request Mode |
| Has Line Items |
Has Line Items |
| Record ID |
Record ID |
| Submitted Date |
Submitted Date |
6.4 Field Mapping — Line Items (After Iterator)
| Target Column |
Mapped From |
Notes |
| Item |
Table[] → Item |
Value from the current iterator bundle |
| Qty |
Table[] → Qty |
Keep as a number |
| Unit Cost |
Table[] → Unit Cost |
Keep as a number/currency |
| Total |
Table[] → Total |
Line item total |
| Record ID |
Cflow → Record ID |
Links each line item back to the parent request |
| Submitted Date |
Cflow → Submitted Date |
For reporting and audit |
6.5 Router Filter Rules
- Route 1 filter: Items Total is less than or equal to 10,000
- Route 2 filter: Items Total is greater than 10,000
- Always use non-overlapping filters to prevent duplicate records.
- Choose the correct amount field: use the request-level Items Total for whole-request routing, or the line-item Total for per-item routing.
7. Ready-to-Use Integration Examples
Below are practical patterns for the most common Cflow integrations. Each can be built in Make using the step-by-step setup from Section 5.
7.1 Cflow → Microsoft Teams or Slack Notification
Send real-time alerts to a Teams or Slack channel whenever a new Cflow request is submitted.
| Module |
Configuration |
| Cflow – Watch Process Initiate |
Trigger on new purchase request, invoice, HR request, or IT ticket |
| Filter (optional) |
Only send when amount > threshold, department = Finance, or status = New |
| Teams / Slack – Send Message |
Post a formatted message with Record ID, requester, amount, and Cflow link to the channel |
Sample Message Template
New Cflow Request Submitted | Record ID: {{Record ID}} | Requester: {{User}} | Email: {{Email}} | Amount: {{Items Total}} | Open in Cflow: {{Cflow Record URL}}
7.2 Cflow → Gmail or Outlook Email Alert
| Module |
Configuration |
| Cflow – Watch Process Approval |
Trigger when approval is completed |
| Gmail / Outlook – Send Email |
Send approval summary to requester, finance team, vendor, or department head |
| Cflow – Update a Record (optional) |
Write email-sent status or timestamp back to Cflow |
7.3 Cflow → Xero or Zoho Books (Invoice/Bill Creation)
| Module |
Configuration |
| Cflow – Watch Process Approval |
Trigger only after the finance approval stage |
| Filter |
Continue only when approval status = Approved |
| Iterator |
Split Cflow line items when individual invoice lines are needed |
| Array Aggregator |
Group line items if the accounting app expects a single invoice with an array of lines |
| Xero / Zoho Books – Create Invoice/Bill |
Map vendor, invoice date, due date, item, qty, unit cost, tax, total, reference number |
| Cflow – Update a Record |
Write external invoice ID or bill number back to Cflow |
7.4 Cflow → Google Drive, Dropbox, or OneDrive (File Storage)
| Module |
Configuration |
| Cflow – Watch Process Initiate |
Trigger when a request with attachments is submitted |
| Iterator |
Split the attachments array if multiple files are attached |
| Drive / Dropbox / OneDrive – Upload File |
Create folder by Record ID or requester name, then upload each file |
| Cflow – Update a Record |
Write the uploaded file link or folder link back to Cflow |
7.5 Cflow → HubSpot, Salesforce, or Pipedrive (CRM)
| Module |
Configuration |
| Cflow – Watch Process Initiate |
Trigger on sales, customer onboarding, renewal, or support workflow |
| CRM – Search |
Search for matching contact/company using email or domain |
| CRM – Create/Update Record |
Create or update lead, contact, deal, ticket, or task |
| Cflow – Update a Record |
Save CRM record ID and URL back in Cflow |
7.6 Cflow → DocuSign (E-Signature)
| Module |
Configuration |
| Cflow – Watch Process Approval |
Trigger after internal approval is completed |
| DocuSign – Send Envelope |
Send document to signer using name and email from Cflow |
| Cflow – Update a Record |
Write signature status, envelope ID, and signed document link back to Cflow |
7.7 Google Sheets / Forms → Cflow (Inbound Record Creation)
| Module |
Configuration |
| Google Sheets / Forms – Watch New Row/Response |
Trigger when external request data is captured |
| Data Cleanup (Set Variable / Text Parser) |
Normalize names, dates, amounts, and dropdown values |
| Cflow – Create a Record |
Select workflow and process; map external fields to Cflow form fields |
| Google Sheets – Update Row (optional) |
Write Cflow Record ID back to the source sheet for traceability |
7.8 Any App → Make Webhook → Cflow
Use this pattern when the source app is not available as a native Make trigger but can send HTTP webhook payloads.
- In Make, add a “Webhooks – Custom Webhook” module as the trigger.
- Copy the generated webhook URL and paste it into the source application.
- Click “Run once” in Make, then send a sample payload from the source app.
- Make automatically learns the data structure. Map the payload fields to Cflow.
- Add a Cflow – Create a Record or Update a Record module and complete the field mapping.
8. Universal Pattern for Any Integration
No matter which app you are connecting to, every Cflow-Make integration follows this same seven-step pattern:
| Step |
What to Do |
Example |
| 1. Trigger |
Choose what starts the scenario |
Cflow Watch Process Initiate, Gmail Watch Emails, Webhook |
| 2. Prepare Data |
Filter, format, split arrays, or look up extra data |
Iterator for line items, Router for value thresholds, Date formatter |
| 3. Action |
Choose the target app module |
Create row, send message, create invoice, upload file |
| 4. Map Fields |
Map Cflow fields to target fields |
Cflow Email → Gmail To, Cflow Item → Invoice line item name |
| 5. Test |
Use Run once and submit sample data |
Check module output and target app result |
| 6. Activate |
Turn the scenario ON after validation |
Use immediate webhook trigger or scheduled polling |
| 7. Monitor |
Check scenario history, errors, and credit usage |
Fix mapping, authorization, or rate limit errors |
9. Data Mapping Rules
Use this reference when mapping Cflow fields to any target application:
| Data Type |
Mapping Rule |
Common Issue |
| Text |
Map directly unless the target has length limits |
Long comments may be truncated |
| Email |
Map clean email value only |
Name+email format may fail in apps requiring only an address |
| Number / Currency |
Keep as numbers; remove currency symbols unless required |
Target rejects comma-formatted or text amounts |
| Date |
Use Make date formatting for ISO, local, or timestamp formats |
Wrong time zone or date format |
| Dropdown / Status |
Map label or internal ID based on target app needs |
Target expects internal ID, not display label |
| Boolean |
Convert Yes/No to true/false if required |
Target field rejects Yes as text |
| Line Items / Table |
Iterator for row-by-row processing; Array Aggregator for single-payload delivery |
Only the first row is sent, or rows are duplicated |
| Attachments |
Use file URL or file object based on target module |
Target requires binary file, not a link |
10. Troubleshooting
| Problem |
Likely Cause |
Fix |
| Cflow fields not visible in Make mapping panel |
Make has not received sample data |
Click Run once, submit a fresh Cflow request, then reopen the next module |
| Webhook does not fire |
Scenario not running, URL not added in Cflow, or wrong workflow selected |
Verify Cflow Connect webhook step, selected workflow, and Make scenario status |
| Works in Run once but not live |
Scenario not turned ON or schedule not set to immediate |
Turn scenario ON and use an immediate/webhook trigger |
| Unauthorised / Connection error |
Invalid or expired credentials |
Reconnect the app and update credentials securely |
| Duplicate rows in the target app |
Overlapping router filters or repeated test submissions |
Use non-overlapping filters; add deduplication by Record ID |
| Only one line item sent |
Cflow table array not split |
Add an Iterator and map fields from the iterator bundle |
| Target app rejects data |
Required field missing or wrong format |
Check required fields; format dates, numbers, and status values correctly |
| Google Sheets columns not visible |
Wrong sheet selected or headers not refreshed |
Select the correct spreadsheet/tab, set headers = Yes, refresh |
| Unexpected credit usage |
Too many runs, loops, routes, or failed retries |
Review history, reduce unnecessary modules, and add filters early |
11. Testing Checklist
Complete every item before turning a scenario ON for production use:
- Run the scenario once with “Run once” before activation.
- Submit a sample Cflow request with all required fields filled.
- Test with zero line items, one line item, and multiple line items.
- Test all router branches (low-value, high-value, different departments, etc.).
- Check every target app field after the test run.
- Validate that dates, numbers, currency, and dropdowns are formatted correctly.
- Confirm that duplicate records are not created.
- Turn the scenario ON only after all output is correct.
- Review scenario history after the first live run.
- Document scenario name, owner, workflow, webhook, target app, and mapping table.
12. Best Practices
- Use a dedicated Cflow integration user instead of a personal account.
- Name scenarios descriptively: Cflow-[Workflow]-[Event]-to-[TargetApp]-[Purpose].
- Name webhooks clearly: WH-Cflow-[Workflow]-[Process]-[Event].
- Add filters before expensive action modules to reduce unnecessary operations and credit usage.
- Keep router filters mutually exclusive unless intentional duplication is needed.
- Always map the parent Record ID into downstream systems for traceability.
- For finance integrations, write the external invoice/bill ID back to Cflow.
- Keep one field-mapping document per scenario.
- Never expose Make webhook URLs publicly.
- Rotate API keys immediately if they appear in screenshots, recordings, documents, or emails.
- Monitor scenario history after any workflow changes in Cflow — field IDs or form structure may change.
13. Reusable Scenario Templates
Use these templates as starting points for the most common integration patterns:
| Template |
Trigger |
Action |
Best For |
| Request Log |
Cflow Watch Process Initiate |
Google Sheets Add Row |
Audit log, backup tracking, reporting |
| Approval Alert |
Cflow Watch Process Approval |
Teams / Slack Send Message |
Real-time manager/team notifications |
| Finance Sync |
Cflow Approval Completed |
Xero / Zoho Books Create Bill/Invoice |
Purchase requests, vendor bills, reimbursements |
| Document Archive |
Cflow Request Submitted |
Drive / Dropbox Upload File |
Contracts, invoices, HR documents, attachments |
| CRM Creation |
Cflow Customer Request |
HubSpot / Salesforce Create Record |
Lead, deal, support, onboarding workflows |
| External Intake |
Google Form / Sheet / Webhook |
Cflow Create Record |
Creating Cflow requests from external sources |
| Status Writeback |
Target App Update / Webhook |
Cflow Update Record |
Writing invoice ID, ticket ID, or status back to Cflow |
14. Integration Documentation Template
Complete this template for every integration before go-live:
| Field |
Value (Fill Before Go-Live) |
| Scenario Name |
<Make scenario name> |
| Scenario Owner |
<Business / technical owner> |
| Cflow Workflow |
<Workflow name> |
| Cflow Process / Stage |
<Process/stage name> |
| Trigger Event |
<Initiate / Approval / Webhook / Scheduled> |
| Target App |
<App name> |
| Target Action |
<Create row / Send message / Create invoice / Upload file / Update record> |
| Primary Key for Traceability |
<Cflow Record ID> |
| Field Mapping Document |
<Link to mapping sheet> |
| Error Owner |
<Person/team responsible> |
| Credential Owner |
<Person / team responsible for API key / OAuth> |
| Go-Live Date |
<Date> |
15. Reference Links
- Make Cflow App Documentation: https://apps.make.com/cflow
- Make Integrations Catalog (1000+ apps): https://www.make.com/en/integrations
- Make Webhooks Documentation: https://help.make.com/webhooks
- Make Iterator Documentation: https://help.make.com/iterator
- Make Aggregator Documentation: https://help.make.com/aggregator
- Make Scenario Scheduling: https://help.make.com/schedule-a-scenario
- Cflow Connect API Integration Guide: https://help.cflowapps.com/knowledgebase/cflow-connect-api-integration-for-process-automation/