API & Make.com / Zapier Integration

Last updated June 17, 2026

The JourneyFuse API lets outside tools create data in your workspace automatically. Where Webhooks send data out of JourneyFuse when something happens, the API lets you send data in — for example, pushing a new Facebook lead into JourneyFuse the moment it comes in, with no manual copying.

If you use Make.com, Zapier, or your own code to move data between tools, this is how you connect them to JourneyFuse.

What You Can Do

The API is currently in beta and covers the most common automation needs:

ActionMethodEndpoint
Verify your key / get workspace infoGET/api/v1/me
Create a leadPOST/api/v1/leads
Create a clientPOST/api/v1/clients
Find clients (by email, or list recent)GET/api/v1/clients
Create a tripPOST/api/v1/trips
Get a trip by IDGET/api/v1/trips/:id

The base URL is https://journeyfuse.com (or your agency's custom domain, if you have one).

Getting Your API Key

  1. Go to Settings → API
  2. Click New API key
  3. Give it a name you'll recognize later (e.g. "Make.com - Facebook Leads")
  4. Copy the key that appears (it starts with jf_live_)

Your full key is shown only once, right after you create it. Copy it somewhere safe before closing the dialog. If you lose it, just create a new one and delete the old.

Keys are scoped to the workspace you create them in. Treat a key like a password: anyone who has it can read and write data in that workspace. You can revoke a key at any time from the same page.

Authentication

Send your key on every request, in either of these headers:

Authorization: Bearer jf_live_your_key_here

or

x-api-key: jf_live_your_key_here

To check that a key works, call the me endpoint:

curl https://journeyfuse.com/api/v1/me \
  -H "Authorization: Bearer jf_live_your_key_here"

A working key returns your workspace:

{
  "workspace": { "id": "...", "name": "Your Agency", "kind": "agency" },
  "scopes": ["*"]
}

Creating a Lead

This is the most common use: pushing a new inquiry into JourneyFuse so it shows up in your Leads pipeline at stage New.

Endpoint: POST /api/v1/leads

Body fields:

FieldRequiredNotes
first_nameYes
last_nameYes
emailNo
phoneNo
sourceNoWhere the lead came from, e.g. "Facebook Lead Ads"
destinationNoWhere they want to travel
notesNoAny extra detail from the form

Example request:

curl -X POST https://journeyfuse.com/api/v1/leads \
  -H "Authorization: Bearer jf_live_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "first_name": "Jamie",
    "last_name": "Rivera",
    "email": "jamie@example.com",
    "phone": "+1 555 123 4567",
    "source": "Facebook Lead Ads",
    "destination": "Maui",
    "notes": "Honeymoon, late September, budget around $8k"
  }'

Successful response (201 Created):

{
  "data": {
    "id": "a1b2c3d4-...",
    "first_name": "Jamie",
    "last_name": "Rivera",
    "email": "jamie@example.com",
    "phone": "+1 555 123 4567",
    "source": "Facebook Lead Ads",
    "stage": "new",
    "destination": "Maui",
    "created_at": "2026-06-17T14:30:00.000Z"
  }
}

The new lead appears in your Leads pipeline immediately, and a lead.created webhook fires if you have one set up.

Step by Step: Facebook Lead Ads to JourneyFuse via Make.com

This walks through the exact setup for sending Facebook lead-ad leads straight into JourneyFuse, replacing a tool like ClickUp in the middle.

  1. In Make.com, create a new scenario
  2. Add the Facebook Lead Ads module → Watch Leads, and connect your Facebook page and lead form
  3. Add a second module: HTTPMake a request
  4. Configure the HTTP module:
    • URL: https://journeyfuse.com/api/v1/leads
    • Method: POST
    • Headers: add one header
      • Name: Authorization
      • Value: Bearer jf_live_your_key_here
    • Body type: Raw
    • Content type: application/json
    • Request content: map the Facebook fields into the JSON body:
{
  "first_name": "{{first_name}}",
  "last_name": "{{last_name}}",
  "email": "{{email}}",
  "phone": "{{phone_number}}",
  "source": "Facebook Lead Ads",
  "destination": "{{destination}}"
}
  1. Run the scenario once to test, then check your JourneyFuse Leads pipeline for the new lead
  2. Turn the scenario on

That is the whole flow. Every new Facebook lead now lands in JourneyFuse automatically, tagged with the source so you know where it came from. The same HTTP module approach works for any tool that can send an HTTP request, including Zapier's Webhooks by Zapier → POST action.

Creating a Client

Endpoint: POST /api/v1/clients

Required: first_name, last_name. Optional: email, phone, household_id. If you leave household_id out, a household is created automatically (the same as adding a client in the app).

curl -X POST https://journeyfuse.com/api/v1/clients \
  -H "Authorization: Bearer jf_live_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{ "first_name": "Sam", "last_name": "Lee", "email": "sam@example.com" }'

Finding Clients

Endpoint: GET /api/v1/clients

List the most recent clients, or look one up by email:

# Most recent (up to 100; default 20)
curl "https://journeyfuse.com/api/v1/clients?limit=50" \
  -H "Authorization: Bearer jf_live_your_key_here"

# Find by email
curl "https://journeyfuse.com/api/v1/clients?email=sam@example.com" \
  -H "Authorization: Bearer jf_live_your_key_here"

Creating a Trip

Endpoint: POST /api/v1/trips

Required: name. Optional: client_id, start_date, end_date, destination, status (defaults to planning). If you pass a client_id, it must belong to your workspace.

curl -X POST https://journeyfuse.com/api/v1/trips \
  -H "Authorization: Bearer jf_live_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Rivera Honeymoon - Maui",
    "client_id": "a1b2c3d4-...",
    "start_date": "2026-09-20",
    "end_date": "2026-09-28",
    "destination": "Maui"
  }'

Error Responses

Errors come back as JSON with a consistent shape:

{ "error": "invalid_input", "message": "first_name and last_name are required.", "fields": { "last_name": "required" } }
StatusWhat it means
400Missing or invalid fields, or the body was not valid JSON
401Missing key, or the key is wrong or revoked
404The record was not found in your workspace
500Something went wrong on our end

Tips

  • Test with /api/v1/me first so you know the key works before building the rest of the automation
  • Set a clear source on leads (like "Facebook Lead Ads") so you can tell at a glance where each one came from
  • Use one key per integration and name it after the tool, so you can revoke just that one if you ever need to
  • Pair the API with Webhooks for two-way sync: send leads in via the API, and push updates back out via webhooks
  • The API is in beta while we add more endpoints. If there's something you want to automate that isn't covered yet, let us know.