SautiDesk
SautiDesk API
Contacts

Find duplicate contacts

GET
/v1/desk/contacts/{id}/duplicates

Lists the contacts that look like the same person as this one: the same account number, an address filed as a number, or the same name (each carries a match saying which). Use it to find candidates before a merge.

Requires: desk.read scope, Contacts licence.

Authorization

bearerAuth
AuthorizationBearer <token>

A SautiDesk API key. An owner or admin makes it under Settings in SautiDesk for a named person and picks the scopes. The key is shown once. Send it as Authorization: Bearer <key>. It acts as that person and as nobody else.

In: header

Path Parameters

id*string

The contact's id (a UUID).

Query Parameters

cursor?string

next_cursor from the previous page. Leave it out for the first page.

limit?integer

Page size: 100 by default, 100 at most.

Response

OK

Example

{  "data": [    {      "id": "3f2b8c1e-5a4d-4e7b-9c10-2d6a8e4f1b37",      "name": "Amina Wanjiru",      "company": "Example Ltd",      "address": "help@support.example.com",      "notes": "Hi Amina, your order has shipped.",      "blocked": false,      "account_no": "example",      "consent_bulk_sms": false,      "consent_bulk_whatsapp": false,      "consent_newsletters": false,      "consent_marketing_calls": false,      "numbers": [        {          "id": null,          "e164": null,          "label": null,          "primary": null        }      ],      "emails": [        {          "id": null,          "address": null,          "label": null,          "primary": null        }      ],      "match": {        "kind": "billing",        "basis": "example",        "confidence": "example",        "label": "Amina Wanjiru",        "reason": "Outside business hours",        "tickets": 1,        "open_tickets": 1,        "numbers": [          null        ],        "unusable_numbers": [          null        ]      }    }  ],  "next_cursor": "eyJvIjoyNX0",  "has_more": false}
FieldTypeDescription
datarequiredobject[]
idrequiredstring (uuid)
namerequiredstringA name for it.
companystringThe company the contact works for.
addressstringAn email address.
notesstringNotes about the call or the ticket.
blockedrequiredbooleanTrue to block this contact so nobody on the team contacts them by mistake, false to unblock.
account_nostringYour own account or customer number for this contact, so you can match it to your billing system.
consent_bulk_smsrequiredbooleanTrue if this contact has agreed to receive bulk SMS.
consent_bulk_whatsapprequiredbooleanTrue if this contact has agreed to receive bulk WhatsApp messages.
consent_newslettersrequiredbooleanTrue if this contact has agreed to receive newsletters.
consent_marketing_callsrequiredbooleanTrue if this contact has agreed to receive marketing calls.
numbersrequiredobject[]
idrequiredstring (uuid)
e164requiredstring
labelstringA short name to recognise it by.
primaryrequiredbooleanTrue to make this the contact's main one.
emailsrequiredobject[]
idrequiredstring (uuid)
addressrequiredstringAn email address.
labelstringA short name to recognise it by.
primaryrequiredbooleanTrue to make this the contact's main one.
matchany
kindrequiredstringWhat kind it is.
basisrequiredstring
confidencerequiredstring
labelrequiredstringA short name to recognise it by.
reasonrequiredstringWhy, in a few words, for example Lunch.
ticketsrequiredinteger
open_ticketsrequiredinteger
numbersrequiredstring[]
unusable_numbersrequiredstring[]
next_cursorrequiredstring | null
has_morerequiredboolean
curl -X GET "https://api.sautidesk.com/v1/desk/contacts/string/duplicates"