API reference
Customers & Documents
A customer is the person or business a call is with. Phone and email are stored encrypted. Customers are matched by phone in any format.
Find Customer
/api/make/customer/{teamId}Finds a customer by Saleso customer ID, phone number, or email.
- Used by:
- Make: Get Customer · Zapier: Find Customer
Parameters
teamIdstringrequiredYour Team ID.
customer_idstring· QueryThe Saleso customer ID. Or leave empty and search by Phone or Email.
phonestring· QueryFull customer phone number in any format (050-1234567, 0501234567, +972501234567). If several customers share the number, the oldest is returned.
emailstring· QueryCustomer email address to search by.
Response
13 response fieldsShowHide
idstringCustomer ID
namestringName
phonestringPhone
emailstringEmail
companystringCompany
statusstringStatus
notesstringNotes
call_countintegerCall Count
last_call_datedatetimeLast Call Date
call_idsarrayIDs of the customer’s calls, newest first.
created_atdatetimeCreated At
updated_atdatetimeUpdated At
profileobjectProfile fields Saleso extracted from the customer’s calls, or null.
- Lookup order:
customer_id, thenphone, thenemail. Unlike Find Lead, no match is a404.
Errors
400None ofcustomer_id,phone,emailwas sent, orphoneis not a full number (at least 9 digits).404Customer not found.401The API key is missing, wrong, or belongs to another team (Invalid API key).500Unexpected server error. Theerrorfield carries the message.
curl -X GET "https://try.saleso.io/api/make/customer/$SALESO_TEAM_ID" \
-H "x-api-key: $SALESO_API_KEY"{
"id": "8b258f8b-4228-40fa-8d24-5b16428e686d",
"name": "Dana Levi",
"phone": "0501234567",
"email": "dana@example.com",
"company": "Levi Logistics",
"status": "Interested",
"notes": "Prefers WhatsApp.",
"profile": {},
"call_count": 4,
"last_call_date": "2026-10-22T09:30:00.000Z",
"call_ids": [
"b263551b-19d2-42d6-b4dc-ca56ec59b769"
],
"created_at": "2026-10-22T09:30:00.000Z",
"updated_at": "2026-10-22T09:30:00.000Z"
}List Customers
/api/make/customers/search/{teamId}Gets customers that match a name, company, or status.
- Used by:
- Make: Search Customers · Zapier: List Customers
Parameters
teamIdstringrequiredYour Team ID.
querystring· QueryOptional. Matches name or company (contains, case-insensitive). Up to 100 characters.
statusstring· QueryFilter by customer status.
limitinteger· QueryResults per page, up to 100. Default 20.
Default:
20offsetinteger· QueryHow many customers to skip, for paging. Use 0 for the first page.
Default:
0include_piiboolean· QuerySend
trueto includephoneandemailin each result. Without it they are null.Default:
false
Response
12 response fieldsShowHide
customers[].idstringCustomer ID
customers[].namestringName
customers[].phonestringPhone
customers[].emailstringEmail
customers[].companystringCompany
customers[].statusstringStatus
customers[].call_countintegerCall Count
customers[].created_atdatetimeCreated At
totalintegerTotal
has_morebooleanHas More
customers[].notesstringCustomer notes, or null.
customers[].updated_atdatetimeLast update.
- Sorted by name.
Errors
401The API key is missing, wrong, or belongs to another team (Invalid API key).500Unexpected server error. Theerrorfield carries the message.
curl -X GET "https://try.saleso.io/api/make/customers/search/$SALESO_TEAM_ID" \
-H "x-api-key: $SALESO_API_KEY"{
"customers": [
{
"id": "8b258f8b-4228-40fa-8d24-5b16428e686d",
"name": "Dana Levi",
"phone": "0501234567",
"email": "dana@example.com",
"company": "Levi Logistics",
"status": "Interested",
"call_count": 4,
"created_at": "2026-10-22T09:30:00.000Z",
"notes": "Prefers WhatsApp.",
"updated_at": "2026-10-22T09:30:00.000Z"
}
],
"total": 1,
"has_more": true
}Create Customer
/api/make/customers/create/{teamId}Creates a new customer in Saleso.
- Used by:
- Make: Create Customer · Zapier: Create Customer
Parameters
teamIdstringrequiredYour Team ID.
namestring· BodyrequiredCustomer name.
phonestring· BodyCustomer phone number.
emailstring· BodyCustomer email.
companystring· BodyCompany name.
statusstring· BodyInitial customer status.
notesstring· BodyCustomer notes.
Response
2 response fieldsShowHide
successbooleanSuccess
customer_idstringCustomer ID
- Fires the
customer_createdwebhook event.
Errors
400name is required.401The API key is missing, wrong, or belongs to another team (Invalid API key).500Unexpected server error. Theerrorfield carries the message.
curl -X POST "https://try.saleso.io/api/make/customers/create/$SALESO_TEAM_ID" \
-H "x-api-key: $SALESO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Dana Levi",
"phone": "0501234567",
"email": "dana@example.com",
"company": "Levi Logistics",
"status": "Interested",
"notes": "Prefers WhatsApp."
}'{
"success": true,
"customer_id": "8b258f8b-4228-40fa-8d24-5b16428e686d"
}Update Customer
/api/make/customer/{teamId}Updates a customer's details in Saleso. Fields left empty are not changed.
- Used by:
- Make: Update Customer · Zapier: Update Customer
Parameters
teamIdstringrequiredYour Team ID.
customer_idstring· BodyrequiredThe Saleso customer UUID to update.
namestring· BodyUpdated customer name.
phonestring· BodyUpdated phone number.
emailstring· BodyUpdated email address.
companystring· BodyUpdated company name.
statusstring· BodyUpdated customer status.
notesstring· BodyUpdated customer notes.
Response
2 response fieldsShowHide
successbooleanSuccess
customer_idstringCustomer ID
- Only the fields you send are changed. Sending an empty
phoneoremailclears it.
Errors
400customer_id is requiredorInvalid status value(empty or over 100 characters).404Customer not found.401The API key is missing, wrong, or belongs to another team (Invalid API key).500Unexpected server error. Theerrorfield carries the message.
curl -X PATCH "https://try.saleso.io/api/make/customer/$SALESO_TEAM_ID" \
-H "x-api-key: $SALESO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"customer_id": "8b258f8b-4228-40fa-8d24-5b16428e686d",
"name": "Dana Levi",
"phone": "0501234567",
"email": "dana@example.com",
"company": "Levi Logistics",
"status": "Interested",
"notes": "Prefers WhatsApp."
}'{
"success": true,
"customer_id": "8b258f8b-4228-40fa-8d24-5b16428e686d"
}Add Customer Document from URL
/api/make/customer-documents/{teamId}Adds a document to a customer from a file link. Saleso downloads the file and stores it on the customer.
- Used by:
- Make: Upload Customer Document (URL) · Zapier: Add Customer Document from URL
Parameters
teamIdstringrequiredYour Team ID.
document_urlstring· BodyrequiredRequired. A public
httpslink to the file. Google Docs, Sheets, Slides and Drawings links are exported automatically (PDF, XLSX or PPTX).file_namestring· BodyOptional. If omitted, inferred from the URL.
customer_idstring· BodyIdentify the customer by
customer_id,customer_phoneorcustomer_email(checked in that order). A phone or email with no customer creates one.customer_phonestring· Bodycustomer_emailstring· Body
Response
4 response fieldsShowHide
successbooleanSuccess
document_idstringDocument ID
customer_idstringCustomer ID
customer_createdbooleanCustomer Created
- Accepted files: PDF, Word, Excel, PowerPoint, TXT, CSV, JPEG, PNG, WebP and GIF, up to 25 MB each. Each team has 5 GB of document storage.
- Customer documents must be enabled for your team.
Errors
400Customer not found(with ahint),Missing document_url,Invalid document URL: …,Failed to download document: <status>,File too large (max 25MB),Downloaded file is empty,File type not allowed.401The API key is missing, wrong, or belongs to another team (Invalid API key).403Customer documents feature is disabled for this team.413Team storage quota exceeded.500Unexpected server error. Theerrorfield carries the message.
curl -X POST "https://try.saleso.io/api/make/customer-documents/$SALESO_TEAM_ID" \
-H "x-api-key: $SALESO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"document_url": "https://example.com/files/contract.pdf",
"file_name": "make_1761125400000.mp3",
"customer_id": "8b258f8b-4228-40fa-8d24-5b16428e686d",
"customer_phone": "0501234567",
"customer_email": "dana@example.com"
}'{
"success": true,
"document_id": "4285776e-215b-466e-b13a-4bdbd699694d",
"customer_id": "8b258f8b-4228-40fa-8d24-5b16428e686d",
"customer_created": true
}Upload Customer Document
/api/make/customer-documents/{teamId}Uploads a file as multipart/form-data and stores it on a customer.
- Used by:
- Make: Upload Customer Document (File) · Zapier: Upload Customer Document
Parameters
teamIdstringrequiredYour Team ID.
filefile· FormrequiredMap a file from an earlier step, e.g. a Gmail attachment or a Google Drive file.
file_namestring· FormrequiredFile name including the extension, e.g. contract.pdf. When mapping a downloaded file, map its file name here.
customer_idstring· FormIdentify the customer by Customer ID, Customer Phone, or Customer Email (one is enough). If no customer has that phone or email, one is created.
customer_phonestring· Formcustomer_emailstring· Form
Response
4 response fieldsShowHide
successbooleanSuccess
document_idstringDocument ID
customer_idstringCustomer ID
customer_createdbooleanCustomer Created
- Same endpoint as Add Customer Document from URL, sent as
multipart/form-datawith the file in thefilepart. Same file types and limits.
Errors
400Missing "file" field in multipart body,Empty file,File too large (max 25MB),File type not allowed,Customer not found.401The API key is missing, wrong, or belongs to another team (Invalid API key).403Customer documents feature is disabled for this team.413Team storage quota exceeded.500Unexpected server error. Theerrorfield carries the message.
curl -X POST "https://try.saleso.io/api/make/customer-documents/$SALESO_TEAM_ID" \
-H "x-api-key: $SALESO_API_KEY" \
-F "file=@contract.pdf" \
-F "file_name=contract.pdf" \
-F "customer_phone=0501234567"{
"success": true,
"document_id": "4285776e-215b-466e-b13a-4bdbd699694d",
"customer_id": "8b258f8b-4228-40fa-8d24-5b16428e686d",
"customer_created": true
}