Make
Send what happens in Cord to any Make app, and create data in Cord from your scenarios.
What it does
The Cord app for Make has an instant trigger (Watch Events), actions to create and change data in Cord, searches with pagination and a universal module for any other API operation. It is authorized with one click on a Cord screen, without keys, and works in every Make zone.
Requirements
| Where | What you need |
|---|---|
| Cord | The Settings permission in the workspace you are connecting. Any plan. |
| Make | A Make account. To install the app, being an Admin, Owner or App Developer of that Make organization. The operations your scenarios use are billed by Make according to your Make plan. |
| Quota | Every action or search module uses calls from your Cord plan’s monthly API quota. See Limits. |
Connect the Cord app
The Cord app for Make is shared by invitation. In Settings › Integrations › Make you will find the Open Cord on Make button, which takes you straight to the invitation.
- Install the app. Click Open Cord on Make, then Install, pick your Make organization and confirm. Make only lets Admins, Owners or App Developers of that organization install apps.
- Create the connection. In a scenario add any Cord module and click Create a connection › Save.
- Authorize in Cord. A Cord screen opens where you pick the workspace and click Authorize. There are no keys to create or paste.
Whoever authorizes needs access to Settings in that workspace. Make renews the access on its own; to cut it, revoke the connection in the API keys tab of the Cord Workbench, where it shows up as Make’s Authorized connection.
| Type | Modules |
|---|---|
| Instant trigger | Watch Events: choose the Cord events and the scenario starts as soon as they happen. |
| Actions | Create a Client, Update a Client, Get a Client, Create a Quote, Get a Quote, Send a Quote, Mark a Quote as Paid and Create a Task. |
| Searches | Search Clients and Search Quotes, with pagination. |
| Universal | Make an API Call, for any other operation in the Cord API. |
Each active Watch Events creates its own webhook in Cord, with a limit separate from your plan’s endpoints.
What flows and in which direction
| Direction | What flows | When |
|---|---|---|
| From Cord to Make | The event you chose in Watch Events, with the object’s data. | Instantly, every time it happens in Cord. |
| From Make to Cord | Whatever the module does: create or update a client, create or send a quote, mark it paid or create a task. | When the scenario runs. |
| Searches and lookups | Make reads clients or quotes to use them in the next module. It changes nothing. | When the scenario runs. |
What a module does in Cord fires the same events as if a person had done it, with Who caused it: The API.
Limits
| Limit | Value |
|---|---|
| API calls per month | Free 100, Starter 1,000, Pro 5,000, Scale 10,000, Developer 50,000 |
| When you go over the quota | On Free, calls are rejected until the next month; from Starter they are billed as overage, with a safety cap of 10 times what is included |
| Webhooks created by your scenarios | 100 per organization, separate from your plan’s webhook endpoints |
| Live authorized connections | 25 per app and per organization |
- What uses quota: every action, search or Make an API Call module, and registering or removing the Watch Events webhook. Receiving events does not use quota.
- How much you have used: in Settings › Plans & subscription › Subscription, API calls row.
- Requests with HTTP › Make a request and an
sk_live_…key also use quota; withsk_test_…they do not.
Disconnect
Turn off a scenario: deactivate it in Make. For Cord to stop sending it events, also delete its webhook in Make’s Webhooks section: when you delete it, Make removes it from Cord.
Cut Make’s access to Cord:
- Go to Settings › Integrations › Make and click View authorized connections. The API keys tab of the Cord Workbench opens.
- Find Make’s Authorized connection row, with the OAuth tag.
- Click Revoke and confirm.
From that moment Make can no longer call the API with that connection, and the webhooks its scenarios had created stop receiving events. In Make, Cord modules fail with an authorization error until you create the connection again. If you used the Webhooks and HTTP alternative, delete the endpoint in Webhooks and revoke the key in API.
Alternative: Webhooks and HTTP
If you prefer not to install the app, Make connects with Cord through two modules Make already includes:
| Direction | Make module | What you need in Cord |
|---|---|---|
| Cord → Make: a Cord event starts your scenario | Webhooks › Custom webhook | A webhook endpoint with the Make URL |
| Make → Cord: your scenario creates or updates Cord data | HTTP › Make a request | A secret API key with write access |
Both are set up in the Cord Workbench (Webhooks and API keys tabs): if you do not see it, turn on Developer mode in Your account › Preferences.
Receive Cord events
- Create the webhook in Make. In your scenario add Webhooks › Custom webhook, click Add, name it and copy the URL Make gives you.
- Register the endpoint in Cord. Open Webhooks in the Developers panel, paste the Make URL and save. Cord shows a signing secret once; Make does not use it, but keep it if you plan to verify signatures later.
- Choose the events. Check only the ones your scenario needs, for example
quote.approvedorinvoice.paid. - Teach Make the event shape. In Make click Redetermine data structure and, in Cord, click Test on the endpoint. Make receives a sample event and learns its fields.
- Map and turn on. Use the fields in the following modules (for example
data.folio,data.total,data.cliente) and turn on the scenario.
What each event contains
Each event is JSON with four fields:
| Field | What it is |
|---|---|
id |
Unique event identifier. It stays the same if Cord retries the delivery. |
event |
The event type, for example quote.paid. |
created_at |
When it happened. |
data |
The object data: for a quote, id, folio, status, moneda, total, cliente, cliente_id and the public link. |
The full list of events and their fields is in Webhooks for developers.
One endpoint or several
You can register one endpoint per scenario with only its events, or one with several events and a Router in Make filtering by event. The first is easier to maintain; the second uses fewer endpoints.
Endpoints you register by hand count toward your plan’s webhook limit: 16 on Free, Starter and Pro; 32 on Scale; 100 on Developer.
Deliveries and retries
Each endpoint keeps a delivery log with the status, response time and Make’s response. If Make does not respond, Cord retries the delivery. Since the id does not change between retries, add a filter or data store in Make so the same id is not processed twice.
Treat the Make webhook URL as a secret. Make does not verify Cord’s signature, so anyone who knows the URL could send fake data to your scenario. Do not share it and, if you think it leaked, delete the endpoint in Cord, create a new webhook in Make and register the new URL.
Create or update data in Cord
- Create a key. In API, in the Developers panel, create a secret key with write scope. It is shown once; store it in the Make connection, not in a text field of the scenario.
- Add HTTP › Make a request to your scenario.
- Configure it:
- URL: the endpoint, for example
https://cordhq.app/api/v1/clientes. - Method:
POSTto create,PATCHto update,GETto search. - Headers:
AuthorizationwithBearerfollowed by your key, andContent-Typewithapplication/json. - Body type:
Raw, Content type JSON, with the resource fields. - Parse response: on, to use the response in the next modules.
- URL: the endpoint, for example
- Avoid duplicates with the
Idempotency-Keyheader (see below).
What you can do
| You want | Request |
|---|---|
| Find a client by email before creating it | GET /api/v1/clientes?email=client@example.com |
| Create a client | POST /api/v1/clientes with at least empresa |
| Update a client’s contact details | PATCH /api/v1/clientes/{id} with contacto, email, telefono, etc. |
| Find a quote by number | GET /api/v1/cotizaciones?folio=COT-00104 |
| Create a quote | POST /api/v1/cotizaciones |
| Send, approve, reject or mark a quote paid | POST /api/v1/cotizaciones/{id} with action: send, resend, approve, reject or mark_paid |
| Create a task | POST /api/v1/tareas with titulo and, optionally, due_date and cotizacion_id |
Fields for each endpoint: Clients, Quotes and Tasks.
Avoid duplicates
Make can retry a module. So a retry does not create the same client twice, add the Idempotency-Key header with a fixed value for that operation, for example the id of the event that caused it or the row id of your spreadsheet. If Cord already received that key with the same request, it returns the original result instead of creating another record.
Test keys
With an sk_test_… key your scenario works against your account’s test environment, isolated from your real data. Use it while building the scenario and switch to the sk_live_… key when done.
Example scenarios
- Quote approved → spreadsheet: Custom webhook with
quote.approved→ Google Sheets › Add a row with number, client and total. - Form → client in Cord: Typeform › Watch responses → HTTP
GET /api/v1/clientes?email=→ if it does not exist, HTTPPOST /api/v1/clientes. - Invoice paid → accounting: Custom webhook with
invoice.paid→ your accounting system. - Payment on another platform → mark paid in Cord: your platform’s trigger → HTTP
GET /api/v1/cotizaciones?folio=→ HTTPPOST /api/v1/cotizaciones/{id}with{"action":"mark_paid"}.
Common errors
| Cord response | Cause | What to do |
|---|---|---|
| 401 | The key is missing, mistyped or revoked. | Check the Authorization: Bearer sk_live_… header. |
| 403 | The key is read-only. | Create a key with write scope. |
| 404 | The id does not exist in your organization. | Check that you mapped the right id, not the quote number. |
409 invalid_state |
The action does not apply to the current status, for example approving a draft. | Check the quote status before the action. |
422 idempotency_key_reused |
You used the same Idempotency-Key with another request. |
Use a different key per operation. |
| 429 | You exceeded the per-minute limit or the monthly API quota. | Add a pause between modules or reduce frequency. Check your usage in Settings › Plans & subscription; on Free, wait for the next month or upgrade. |
| “You cannot connect apps here” when authorizing | Your user does not have the Settings permission in that workspace. | Ask someone who has it to authorize. |
More in API errors.