Make Integration
Step-by-step guide to connecting Clearmargin with Make (formerly Integromat) using webhooks and the HTTP module.
Build visual automation scenarios in Make (formerly Integromat) using Clearmargin webhooks and HTTP modules. Connect Clearmargin to thousands of apps with Make's drag-and-drop scenario builder.
What you need
- A Clearmargin account (admin or owner role)
- A Make account (free tier works for basic scenarios)
- A Clearmargin API key (for actions) — create one at Settings > API Keys
- About 10 minutes
Part 1: Set Up Triggers (Clearmargin to Make)
Use Clearmargin webhooks to trigger Make scenarios when events happen in your account.
Create a Custom Webhook in Make
Create a new scenario in Make. Add a Webhooks > Custom webhook module as the trigger. Click Add to create a new webhook — Make will generate a unique URL. Copy this URL. This is the endpoint where Clearmargin will send event notifications.
Add the webhook in Clearmargin
Go to Settings > Webhooks in your Clearmargin dashboard. Click Add Webhook and paste the Make webhook URL. Select the events you want to trigger on — for example, invoice_paid, payout_paid, proposal_accepted, client_created, or time_entry_created. Save the webhook configuration.
Determine data structure
Back in Make, click Re-determine data structure on the webhook module. Then trigger an event in Clearmargin (e.g., create a test client or send a test invoice). Make will receive the payload and automatically learn its structure. This lets you map individual fields — like client.name, invoice.total, or proposal.status — to downstream modules in your scenario.
Part 2: Set Up Actions (Make to Clearmargin)
Use Make HTTP modules to read and write data in Clearmargin.
Create an API key in Clearmargin
Go to Settings > API Keys and create a new key. Select the permission scopes you need (e.g., clients:read, clients:create, invoices:read). Copy the key — it is only displayed once.
Add an HTTP module in Make
Add an HTTP > Make a request module to your scenario. Configure it to call the Clearmargin API:
URL: https://www.clearmargin.app/api/clients
Method: GET (or POST/PUT/DELETE)
Headers:
Authorization: Bearer sk_live_your_key_here
Content-Type: application/json
Query String (for GET):
limit: 10
sort: -createdAt
Body (for POST):
{
"name": "New Client Name",
"email": "client@example.com"
}Replace the URL path with the collection you want to interact with — /api/invoices, /api/projects, /api/time-entries, etc.
Parse the response
After the HTTP module, add a JSON > Parse JSON module to parse the response body. This converts the raw JSON into structured data that you can map to other modules in your scenario. The API returns paginated results with a docs array containing the records and hasNextPage/totalDocs metadata.
Example Scenarios
Proposal to CRM
Webhook (proposal_accepted) → Router → HTTP module (create deal in HubSpot with proposal amount as deal value) + HTTP module (create task in Asana for project kickoff). Use Make's router to fan out a single event to multiple destinations.
Invoice paid to accounting
Webhook (invoice_paid) → Data transform (map Clearmargin fields to your accounting format) → Google Sheets (add row with invoice number, client, amount, date) → Gmail (send confirmation email to your bookkeeper).
Weekly time report
Schedule trigger (every Monday at 8am) → HTTP Request (GET /api/time-entries?where[createdAt][greater_than]=<last_week>) → Array aggregator (sum hours by project) → Send email with formatted time summary.
Form to client and project
Google Forms (new submission) → HTTP Request (POST /api/clients with name and email from form) → HTTP Request (POST /api/projects using the client ID returned from the previous step) → Slack notification to your team channel.
Tips
Store your API key in a variable. Use Make's Set variable module at the start of your scenario to store the API key once. Reference it in all HTTP modules with {{variable_name}} instead of pasting the key in each module. This makes key rotation painless.
Add error handlers for resilience. Attach error handlers to HTTP modules to gracefully handle rate limits (HTTP 429). Configure a retry with a delay matching the Retry-After header. This prevents scenarios from failing during traffic spikes.
Handle pagination for large datasets. The Clearmargin API returns paginated results. Use Make's Iterator module on the docs array to process individual records. Check the hasNextPage field in the response — if true, make another request with an incremented page parameter to fetch the next batch.
Reference
- API Reference — Full endpoint documentation, query syntax, and examples
- Webhook Events — All available webhook event types and payload formats
- API Keys — Create and manage your API keys