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.
- M MakeTickets, chats, calls, reviews
- ⟳ Your jobPull new · map fields · every 15 min
- { } Universal APIPOST /track · /trackhistorical
- 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.
What you need
Section titled “What you need”- 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. Choose the trigger
Section titled “1. Choose the trigger”- In the scenario editor, add the trigger module for your app, for example a module that watches new responses, new reviews or new rows.
- 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.
2. Add the HTTP module
Section titled “2. Add the HTTP module”Make’s own reference is HTTP: Make a request.
- Add a module after the trigger, search for HTTP, and choose Make a request. Use the current HTTP app (Version 4), not HTTP (legacy).
- Set Authentication type to No authentication. The API key goes in the query string below.
- Set Method to POST.
- 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. Replace1.writtenAtwith 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")}}- Under Query parameters, add these four:
| Name | Value |
|---|---|
platform | universal |
v | 11.1.0-rest |
type | incoming |
apiKey | your Dimension Labs API key |
- Set Body content type to application/JSON. Make sets the
Content-Typeheader from this field, so don’t add it under Headers.
3. Build the message
Section titled “3. Build the message”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.
- 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 }}- Check the generated types:
incomingis a Boolean,dimensionlabs_timestampa Number,platformJsona Collection. Add or removeplatformJsonitems to keep the fields you want to filter or join on later (a rating, a location id, a form name). - Map each field from your trigger:
| Field | Map it to | Notes |
|---|---|---|
text | the customer’s words | A review, an answer, a message. |
sessionId | jotform- 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. |
conversationId | the same as sessionId | |
userId | ifempty(customer id; session id) | Your internal customer id if the trigger has one, otherwise the sessionId. Never an email address or name. |
incoming | true | Everything here is the customer’s own words. |
dimensionlabs_timestamp | parseNumber(formatDate(1.writtenAt; "x"); ".") | x is Make’s token for Unix milliseconds (formatting tokens). |
platformJson.source | the app’s name, typed as text | For example jotform. |
If your trigger gives the date as text rather than a date, convert it first with parseDate (date and time functions).
4. Skip empty text
Section titled “4. Skip empty text”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.
5. Turn it on
Section titled “5. Turn it on”- 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.
A record with several messages
Section titled “A record with several messages”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.
Make reference
Section titled “Make reference”- Make integrations
- HTTP: Make a request
- Date and time functions
- Tokens for date/time formatting
- General functions
- Filtering
Checked against Make’s documentation on 2026-10-26.