GUIDES · MAKE · NO-CODE AUTOMATION
Classify emails, leads and tickets in Make with a model trained on your own decisions
Make connects the apps you already use. Add one HTTP module to a scenario and it sends each new email, lead, form entry or spreadsheet row to the model you trained on your team's past decisions. The model returns the answer your team would most likely give, how sure it is, and whether a person should check it first. The modules after it act on the answer: label the email, assign the lead, file the row, or send it to someone to review.
About 20 minutes once you have a published model.
Connect your workspace →From a new email to the right team
- Trigger: a new Gmail email, “Pricing for 40 seats”.
- HTTP module: Sales – Enterprise · confidence 0.91 · needsReview: false.
- Next step: add the lead to your CRM and assign it to the enterprise team.
Before you start
- StayCharted: an Essentials or Business workspace, which includes the API, with at least one published model. Training works on every plan, Free included, so you can check the model's report first.
- An API key: in StayCharted, Settings → API keys → Create key. A key belongs to one workspace and can use that workspace's published models. It's shown once, so keep it somewhere safe.
- The model's ID and the columns it reads: open the model in StayCharted, choose Use → Prediction API. It shows the model's ID and how many columns it was trained on. The column names are the ones in your training file (for example Subject and Message).
- Make: any Make account. The Free plan has a 15-minute minimum interval for scheduled runs. Credit use depends on the modules and how often they run. Check current Make plans.
Part 1: Connect your workspace
Make HTTP module: API key and Bearer token
Make keeps the key in a keychain, so it never sits in the scenario itself.
- In a scenario, add the HTTP app's Make a request module.
- Set Authentication type to API key.
- Next to Credentials, click Add and fill in the keychain:
- Name: something you'll recognize, for example StayCharted – Support workspace.
- Key: the word
Bearer, a space, then your API key:Bearer amt_live_… - API key placement: In the header.
- API key parameter name:
Authorization
- Save the keychain.
To stop access, delete the key in StayCharted: every scenario using it stops at once.
Check the connection (optional). With the keychain chosen, set URL to
https://amt.staycharted.com/api/v1/models, Method to GET, Parse response to
Yes, and click Run once. The output lists your published models with their IDs and
the columns each reads, and names the workspace the key belongs to. It spends no
predictions.
Part 2: Build the scenario
Trigger: the app and event where your records start, for example:
- Gmail or Microsoft 365 Email: Watch emails (for sales leads or support requests).
- Google Sheets: Watch new rows.
- Typeform, Jotform or Google Forms: Watch responses.
- HubSpot, Pipedrive or Salesforce: Watch new contacts or leads.
- Your help desk: Watch new tickets.
Run the trigger once so Make has a sample record to map.
HTTP → Make a request, with the keychain from Part 1:
- URL:
https://amt.staycharted.com/api/v1/models/<model ID>/classify - Method: POST
- Body content type: application/JSON
- Body input method: Data structure
- Parse response: Yes
- URL:
Describe the record once. Next to the data structure, click Add, name it after the model (for example Ticket record) and click Generate. Paste a sample with the model's own column names, spelled exactly as in your training file:
Show JSON example
{"input": {"Subject": "", "Message": ""}}Click Generate, then Save. Make now shows an input group with one field per column.
Map each field from the trigger: Gmail's Subject into Subject, the email body into Message, and so on. Fill as many as you have. At least one must contain a value.
Run once. You'll see the model's answer for the sample record. Then turn the scenario on and set its schedule.
Why a data structure, not a JSON string: an email body is full of quotes and line breaks. Typed into a JSON string, the first quote breaks the request. The data structure lets Make write the JSON for you, whatever the text holds.
Map the same kind of text the model was trained on. A model trained on short subjects and the first paragraph of each email answers best when it gets the same.
Part 3: Use the answer
With Parse response on, these values can be mapped in later modules:
| In Make | What it is |
|---|---|
| label | The model's answer, for example Billing or Sales – Enterprise. |
| confidence | How sure the model is, from 0 to 1. |
| needsReview | true when the confidence is below the model's review cutoff. |
| fields | For a model that answers several things at once, such as Category and Assignment group: each part by name. |
| labels | For a model whose answer is a list, such as several tags. |
| modelId / modelName | Which model answered. |
Send unsure answers to a person. Add a Router after the HTTP module. On one route, set a filter needsReview equal to false and act on the answer. On the other, filter needsReview equal to true and send the record to a person, for example a Slack message or an email with the model's answer and a link to the record. Records under the cutoff also wait in StayCharted's Review Queue. Pick one place to review; checking both is wasted work.
Act on the answer. Map label (or a fields value) into the next module: a Gmail label, a CRM owner or stage, a help-desk group, a spreadsheet column. To give each answer its own route, add one Router route per answer with a filter on label.
Ideas to start with
- Sales leads from Gmail: classify each inbound email as a lead type (Enterprise, Small business, Partner, Not a lead). Create the contact in your CRM with that type and owner; send Not a lead to a label instead.
- Support requests: classify by category and team, then create the ticket in your help desk with both filled in. Unsure ones go to a triage channel.
- Form entries and spreadsheet rows: write the answer to a column in the same row, so your team sorts by it.
Each starts with a model trained on decisions your team already made: past emails with the lead type you gave them, resolved tickets with their final category and team.
See AI email routing for a shared inbox for training examples and a review workflow.
Paid-search review: Classify rows from an exported search terms sheet and send suggestions to your team for approval. Sort Google Ads search terms with your trained model →. Applying account changes is a separate step.
What it doesn't do
- One record per run of the module. For thousands of existing rows, fill a file or a Google Sheet in StayCharted instead. Developers can send up to 100 records in one call with the predict endpoint.
- It doesn't learn from the scenario. Corrections your team makes in the other apps reach the model when you retrain on a fresh export of those decisions, the same way you trained it.
- Models that read pictures take a link to the picture instead of text fields. See the API reference for the request.
If something goes wrong
Make shows StayCharted's own message in the HTTP module's output. The code field says
which:
| Status and code | What to do |
|---|---|
400 api.input_missing |
No field had a value. Map at least one, and check the trigger's sample has a value there. |
400 api.input_fields_missing |
The field names don't match the model's columns. The message names the ones it reads; fix the data structure to match. |
401 api.key_missing or api.key_invalid |
The keychain's Key must be Bearer + space + key, placed in the header as Authorization. If the key was deleted, create a new one and update the keychain. |
| 402 | The workspace's plan doesn't include the API (Free), or this month's predictions are used up. See Plan & usage in StayCharted. |
404 api.model_not_found |
Wrong model ID in the URL, or the key belongs to another workspace. |
409 api.model_not_deployed |
The model is trained but not published. Publish it in StayCharted. |
429 api.rate_limited |
Too many records a minute for your plan. Use a Break error handler with incomplete executions and automatic retries configured; respect the API’s Retry-After delay. |
503 api.model_unavailable |
The model is briefly unable to answer. Retry after a few minutes; the same Break handler covers this. Nothing was charged. |
Common questions
Does StayCharted connect to my Gmail, CRM or other apps?
No. Make sends StayCharted only the fields you map, one record at a time, and StayCharted answers. It never connects to your other apps.
Is my data used to train anyone else's model?
No. Your examples train only your workspace's models, and StayCharted doesn't send your data to an outside AI provider.
How does it count against my plans?
Each record is one prediction in StayCharted, shown under **Plan & usage**. In Make, every module that runs uses credits.
What happens when I publish a new version of the model?
The scenario uses it automatically, with no change on your side, as long as it reads the same columns. If you retrain on different columns, update the data structure.
Is there a StayCharted app for Make?
Not yet; the HTTP module does the job today. StayCharted also has an early-access Zapier integration. The Power Automate connector is awaiting certification.
Put it into practice
Prefer Zapier? Follow the Zapier guide →
Setup reference: Make HTTP documentation.
Make is a trademark of Celonis, Inc. Gmail and Google Sheets are trademarks of Google LLC. StayCharted is not affiliated with Make or Google.