Skip to main content

Overview

Flowla’s native integrations cover the most common tools, but every stack is different. Three building blocks let you integrate with any external system directly inside your workflows:
Building blockWhat it does
Webhook TriggerStarts a workflow when an external system sends a request to Flowla
Code ActionRuns JavaScript to parse, transform, or compute data mid-workflow
HTTP Request ActionSends data from Flowla outward to any external endpoint
These are independent tools. You can use them individually or together, depending on what your integration requires.

Webhook trigger β€” Receiving data from external systems

What it does

A Webhook trigger gives your workflow a unique URL. When any external system sends a POST request to that URL, the workflow starts. Use it when:
  • Your in-house CRM, ERP, or billing tool needs to kick off a Flowla workflow
  • An external event (contract signed, account health score drop, form submission on your website) should create or update a room
  • You want to trigger Flowla from tools that don’t have a native integration

Setting it up

  1. Open AutoPilot β†’ New Workflow
  2. Select Webhook as the trigger
  3. Copy the unique webhook URL Flowla generates
  4. In your external system, configure it to POST a JSON body to that URL
A typical incoming payload might look like:
{
  "deal_id": "deal_8821",
  "contact_email": "jane@acmecorp.com",
  "contact_name": "Jane Doe",
  "company": "Acme Corp",
  "stage": "Proposal",
  "deal_value": 42000
}
Tip: Use a tool like Postman or curl to send a test payload before building out the rest of the workflow. Check the workflow run history to confirm the trigger fired correctly.

What happens to the payload

The full request body lands in context.payload as a raw JSON string. The workflow has access to it, but to reference individual fields in downstream actions, you’ll need to parse it β€” that’s what the Code action is for.

Code action β€” Parsing and transforming data

What it does

The Code action runs a small JavaScript snippet at any point in your workflow. It can read data from the workflow context, transform it, compute new values, and output named variables that all subsequent actions can reference. You’ll use it most commonly to parse a webhook payload, but it’s useful anywhere you need to reshape data β€” regardless of what trigger started the workflow.

Setting it up

Add a Code action at the point in your workflow where you need to process data. Write a JavaScript snippet and return an object of the variables you want to make available downstream. You’ll need a code action for each data point you want use in the following actions.
  1. Add the variable using Add variable button
  2. The variable will be added as a const

Parsing a webhook payload

When a workflow starts from a Webhook trigger, use the Code action to extract the fields you need:
// The trigger data lives under this key in context
const triggerData = context["00000000-0000-0000-0000-000000000000"];

// The webhook payload is stringified JSON, so parse it
const payload = JSON.parse(triggerData.payload);

// Now access whatever fields and return your result
return payload.dataPoint;
After this action runs, dataPoint is available in every subsequent action β€” just like built-in trigger variables.

HTTP Request Action β€” Sending Data to External Systems

What it does

The HTTP Request action makes an outbound HTTP call to any external endpoint. Use it to push data from Flowla into a system that doesn’t have a native integration β€” or to trigger a process in an external tool based on something that happened inside Flowla. This action can follow any trigger in Flowla β€” not just a Webhook.

Common use cases

  • A room is viewed for the first time β†’ notify your internal system or data warehouse
  • A form is submitted in a room β†’ push the responses to a ticketing tool or custom database
  • A HubSpot deal stage changes β†’ sync a property to an in-house CRM that runs alongside HubSpot
  • An action in a mutual action plan is completed β†’ trigger a downstream process in your ops tooling
  • A Fireflies transcription completes β†’ send a summary to an internal Slack bot or logging system

Setting it up

Add an HTTP Request action at the relevant point in your workflow and configure:
FieldDescription
MethodPOST, PATCH, PUT, or GET
URLThe endpoint to call β€” can include {{variables}}
HeadersAuthentication and content type headers
BodyJSON payload β€” use {{variables}} from earlier steps

Example: Notifying an internal system when a room is first viewed

Trigger: Room viewed first time HTTP Request config: Method: POST URL:
https://api.yourcompany.com/events/room-viewed
Headers:
Content-Type: application/json
Authorization: Bearer YOUR_API_TOKEN
Body:
{
  "room_id": "{{room.id}}",
  "room_link": "{{room.link}}",
  "viewer_email": "{{contact.email}}",
  "viewed_at": "{{trigger.timestamp}}"
}

Authentication patterns

Bearer token:
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR...
API key header:
X-API-Key: your_api_key_here
Basic auth:
Authorization: Basic base64(username:password)
Store authentication credentials in the Headers field, not the body, so they’re not exposed in payload logs.

Combining the Building Blocks

These three tools can be mixed with any other Flowla actions β€” room creation, email sending, CRM updates, Slack notifications, and more. A few example patterns:

Pattern A β€” Inbound only: External event β†’ Flowla action

An external system fires a webhook. You parse the payload and use the data to create a room or send an email.
[Webhook Trigger]
       ↓
[Code Action β€” parse payload into variables]
       ↓
[Create Room from Template β€” using {{company}}, {{contactEmail}}, etc.]
       ↓
[Send Email β€” with room link]

Pattern B β€” Outbound only: Flowla event β†’ External system

Something happens inside Flowla and you push the data outward. No webhook or code action needed.
[Form Submitted Trigger]
       ↓
[HTTP Request β€” POST form responses to your database]
[HubSpot Deal Stage Changed]
       ↓
[Create Room from Template]
       ↓
[HTTP Request β€” sync room URL back to in-house CRM]

Pattern C β€” Bidirectional: External event β†’ Flowla β†’ External system

An external system triggers the workflow, Flowla acts on it, then sends data back out.
[Webhook Trigger]
       ↓
[Code Action β€” parse payload]
       ↓
[Create Room from Template]
       ↓
[Send Email]
       ↓
[HTTP Request β€” POST room URL back to originating system]

FAQs

Can I add a Code action in the middle of a workflow, not just at the start? Yes. The Code action can be placed anywhere in the sequence β€” for example, between a CRM trigger and an HTTP Request if you need to reformat a field value before sending it out. Does the HTTP Request action work with any trigger? Yes. It’s a regular action that can follow any trigger in Flowla β€” room activity, form submissions, CRM changes, call transcripts, email, or a webhook. Can I chain multiple HTTP Request actions in one workflow? Yes. You can add as many as you need and they’ll execute in sequence. For example, you could notify two different external systems in the same workflow. How do I test a webhook before going live? Send a sample POST request to your Flowla webhook URL using Postman, curl, or a service like Webhook.site. Then check the workflow run history to confirm the trigger fired and your Code action extracted the expected values. What if my webhook payload structure varies between requests? Use optional chaining and nullish coalescing in your Code action (data.field?.subfield ?? "fallback") to handle missing or inconsistent fields gracefully.

What’s Next

  • Triggers β€” Full list of available triggers
  • Actions β€” Full list of available actions
  • AI Agents β€” Add AI-generated content between steps
  • Suggested Recipes β€” Pre-built workflow templates to get started