# API & Webhooks

Connect Fluid to any tool that speaks HTTP. Cold email platforms, lead capture tools, automation services, internal scripts, ops dashboards. The API is workspace-level and intended for integrations, not daily manual use.

### What you can build with the Fluid API

Common use cases include:

* Creating deals automatically from form submissions on your website
* Pushing booked meetings into Fluid as new deals
* Auto-creating deals from positive replies in cold email tools (Smartlead, Instantly)
* Updating deal stages based on external events (payment received, contract signed)
* Syncing pipeline data with internal dashboards or BI tools
* Building internal tools that read from or write to Fluid

The API exists to remove repetitive work and keep Fluid as the execution layer in your stack.

Compatible with any platform that supports HTTP requests:

* Make.com
* n8n
* Zapier
* Pabbly
* Booking and scheduling tools
* Outbound and cold email platforms
* Marketing automation tools
* Internal tools and custom scripts

### API endpoints

The Fluid API currently supports four endpoints.

**POST /api-ingest**

Create or update deals. The primary endpoint for pushing data into Fluid.

Accepts:

* Deal name, contact details, company, value
* Pipeline ID and stage ID
* Custom field values
* Reminder configuration

Used most often for inbound lead capture and external automation flows.

**GET /api-pipelines**

List all pipelines in your workspace.

Returns pipeline names and IDs. Used to identify which pipeline to target in subsequent API calls.

**GET /api-stages**

List all stages within a specific pipeline.

Returns stage names, IDs and order. Used to identify which stage to place deals in.

**GET /api-custom-fields**

List all custom fields defined per pipeline.

Returns custom field IDs, names and types. Used to map external data to the right Fluid fields.

### Authentication

All API requests use Bearer token authentication.

* Generate API keys from Settings, then Automations, then API
* Pass the key in the Authorization header on every request
* Format: `Authorization: Bearer YOUR_API_KEY`

### API keys

From the API settings page you can:

* Create a new API key
* View existing keys
* See when each key was created
* See when each key was last used
* Delete keys that are no longer needed

Important security rules:

* An API key is shown only once at creation
* You must store the key securely
* Lost keys cannot be recovered and must be regenerated
* Anyone with the key has full API access for your workspace

Treat API keys like passwords.

### Security best practices

When using the Fluid API:

* Store API keys in environment variables or secure vaults
* Do not hard-code keys into client-side code or public repos
* Rotate keys if you believe they are compromised
* Delete unused keys regularly
* Use separate keys for different integrations so you can revoke individually

Fluid does not expose API keys again after creation to reduce risk.

### Webhooks

Webhooks send real-time notifications to external services when deals or contacts change in Fluid.

Use webhooks when you want external systems to react instantly to changes, instead of polling the API on a schedule.

Common use cases:

* Notify a Slack channel when a deal moves to "Won"
* Trigger an onboarding workflow in another tool when a deal is created
* Sync contact updates to your email marketing platform
* Log deal events to your internal data warehouse
* Trigger Make.com or Zapier flows on specific events

### Webhook events

Fluid supports 10 webhook events covering deals, contacts and form submissions.

Deal events:

* **Deal Created** fires when a new deal is added to any pipeline
* **Deal Updated** fires when deal fields, value or stage are changed
* **Deal Stage Changed** fires specifically on stage movement
* **Deal Won** fires when a deal is marked as Won
* **Deal Lost** fires when a deal is marked as Lost
* **Deal Deleted** fires when a deal is deleted

Contact events:

* **Contact Created** fires when a new contact is created (manually, from a deal, from import or via API)
* **Contact Updated** fires when contact fields are changed
* **Contact Deleted** fires when a contact is deleted

Lead form events:

* **Form Submitted** fires when someone submits one of your embedded Lead forms

You can subscribe to any combination of events per webhook endpoint.

### Setting up a webhook

To create a webhook:

* Go to Settings, then Automations, then Webhooks
* Click Add Webhook
* Enter the endpoint URL where Fluid should send events
* (Optional) Add an Authorization Header token if your receiver requires it. Required by some services like Make.com
* Select which events to subscribe to
* Click Create Webhook

After creation, Fluid begins sending HTTP POST requests to your endpoint when the subscribed events fire.

### Webhook payload

Each webhook delivery includes:

* The event type
* A timestamp
* Full data for the affected deal or contact
* IDs for the workspace, pipeline and stage where relevant

Your endpoint should respond with HTTP 200 to acknowledge receipt. Failed deliveries are retried with exponential backoff.

### Authorization header for webhooks

If your receiver requires an auth token (Make.com requires this for some workflow types), enter the token value in the Authorization Header field when setting up the webhook.

Fluid will include it as `Authorization: YOUR_TOKEN` on every delivery to that endpoint.

This protects your receiver from accepting unsolicited requests.

### Managing webhooks

From the Webhooks tab you can:

* View all configured webhooks
* See which events each subscribes to
* Edit endpoint URL, auth header or event subscriptions
* Pause a webhook temporarily
* Delete a webhook permanently

### What API & Webhooks do not do

The API and webhooks:

* Do not replace the UI for daily work
* Do not provide reporting or analytics dashboards
* Do not automatically sync data without your automation logic
* Do not include a built-in marketplace of pre-built integrations

The API and webhooks are building blocks, not a full integration platform by itself. You build the integration logic in your tool of choice (Make.com, Zapier, n8n, custom code).

### Why this matters

Most CRMs at Fluid's price point either:

* Do not have an API at all
* Hide the API behind the enterprise plan
* Charge per-call or per-integration fees

Fluid puts the full API on every account, documents the endpoints publicly and includes webhooks at no extra cost. Build what you need without an upgrade conversation.

### What to read next

* Lead forms, embeddable forms that auto-create deals via the API
* Customize data fields, configure custom fields that the API can write to
* Customize pipeline, structure stages before automating


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://fluid-crm.gitbook.io/fluid-crm-docs/features/api-and-webhooks.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
