Skip to content

02 Get your data in /Integrations

Make

Send records from any of Make's apps to Dimension Labs with a scenario and the universal API, without running your own server.

  1. M MakeTickets, chats, calls, reviews
  2. ⟳ Your jobPull new · map fields · every 15 min
  3. { } Universal APIPOST /track · /trackhistorical
  4. Dimension LabsRead in full · enriched daily

Make connects to thousands of apps (Make’s integrations page lists 3,500+ as of 2026-10-26). If a tool you use has a Make module that watches for new records, such as a new form response, review, ticket or spreadsheet row, a scenario can send each new record to the universal API. There’s no server to run: Make runs the scenario on its schedule.

Make fits sources where one trigger event is one piece of customer text: a form or survey response, a review, a feedback submission, the first message of a ticket. For full multi-message conversations, or to load history, use the app’s own guide or Any other system, which pull every message in order.

  • A Make account.
  • A Make trigger module for your app that returns the customer’s text and a date.
  • A Dimension Labs API key for a new Universal API source. See Your API key.
  1. In the scenario editor, add the trigger module for your app, for example a module that watches new responses, new reviews or new rows.
  2. Run it once and check the output has three things: the customer’s text, an id for the record, and when it was written.

Use one source in Dimension Labs per app, so its data is easy to filter later.

Make’s own reference is HTTP: Make a request.

  1. Add a module after the trigger, search for HTTP, and choose Make a request. Use the current HTTP app (Version 4), not HTTP (legacy).
  2. Set Authentication type to No authentication. The API key goes in the query string below.
  3. Set Method to POST.
  4. In URL, enter the address below. The part in braces picks the endpoint: a record written more than an hour ago goes to /trackhistorical, as every guide does. Replace 1.writtenAt with your trigger’s date field (click into the formula and pick it from the trigger’s output).
https://tracker.dimensionlabs.io/{{if(formatDate(1.writtenAt; "x") < formatDate(addHours(now; -1); "x"); "trackhistorical"; "track")}}
  1. Under Query parameters, add these four:
NameValue
platformuniversal
v11.1.0-rest
typeincoming
apiKeyyour Dimension Labs API key
  1. Set Body content type to application/JSON. Make sets the Content-Type header from this field, so don’t add it under Headers.

Set Body input method to Data structure, not JSON string. With a data structure, Make escapes quotes and line breaks in each value for you. With JSON string you must escape them yourself, and a review with a quotation mark in it would break the request.

  1. Next to the data structure field, add a new data structure and open the generator. Paste this sample and generate:
{
"text": "Sample text",
"userId": "jotform-123",
"incoming": true,
"sessionId": "jotform-123",
"conversationId": "jotform-123",
"dimensionlabs_timestamp": 1761487380000,
"platformJson": { "source": "jotform", "rating": 4 }
}
  1. Check the generated types: incoming is a Boolean, dimensionlabs_timestamp a Number, platformJson a Collection. Add or remove platformJson items to keep the fields you want to filter or join on later (a rating, a location id, a form name).
  2. Map each field from your trigger:
FieldMap it toNotes
textthe customer’s wordsA review, an answer, a message.
sessionIdjotform- followed by replace(record id; ":"; "-")The record’s own id: response id, review id, ticket id. replace turns any colon into a dash, because ids can’t contain colons.
conversationIdthe same as sessionId
userIdifempty(customer id; session id)Your internal customer id if the trigger has one, otherwise the sessionId. Never an email address or name.
incomingtrueEverything here is the customer’s own words.
dimensionlabs_timestampparseNumber(formatDate(1.writtenAt; "x"); ".")x is Make’s token for Unix milliseconds (formatting tokens).
platformJson.sourcethe app’s name, typed as textFor example jotform.

If your trigger gives the date as text rather than a date, convert it first with parseDate (date and time functions).

Click the line between the trigger and the HTTP module and set up a filter (Filtering): condition on the trigger’s text field, operator Exists. Records with no text stop there.

Click Run once. A 200 status in the HTTP module’s output means the message reached Dimension Labs. In the module’s advanced settings, set Return error if HTTP request fails to Yes so a rejected message shows as an error, not a success.

  • Turn the scenario on and set its schedule. Each new record is sent as Make picks it up, to /track, and is enriched automatically every day.
  • If Make sees a record late (more than an hour after it was written, for example on a slow schedule), the URL sends it to /trackhistorical. Run a backfill from the Backfill tab to enrich those.
  • History: a scenario only sees new records. Export your history from the app and upload a file (check it with the file checker), then run a backfill.
  • Re-runs are safe: if Make replays a run, duplicates are removed automatically.

Personal data. Don’t map email addresses, names or phone numbers into any field: everything in platformJson is kept as metadata. Redact the text if customers include personal details. See PII redaction.

If the trigger returns a whole conversation (a ticket with replies, a chat transcript), each message needs its own POST, in order, at least one second apart, with replies from your side marked incoming: false and type=outgoing. That is easier and more reliable in a script: see the app’s guide, or Any other system.

Checked against Make’s documentation on 2026-10-26.