Find contact
Use this endpoint to check if a certain contact exists in Engage:
/api/v2/contacts/id
To this you can send one (or several) of the following parameters:
GET /api/v2/contacts/id?email=john.doe%40gmail.com
mobilePhone
GET /api/v2/contacts/id?mobilePhone=%2B46735654321
socialSecurityNumber
Although it's called socialSecurityNumber (sometimes SSN) in Engage, what's actually used here is a Swedish personal identity number, a Finnish personal identity code or a Swedish coordination numbers (samordningsnummer) which is the identification number given in Sweden before a person has their personal identity number.
GET /api/v2/contacts/id?socialSecurityNumber=196903027573
customKey
As the customKey value you can send either a contact's memberNumber or externalId, depending on how your tenant is set up. Your Voyado Engage team can help you here.
GET /api/v2/contacts/id?customKey=999888777
any
The "any" parameter will, as the name suggests, accept any of the above values. They are scanned in the following order: email, socialSecurityNumber, mobilePhone and then customKey.
For example:
GET /api/v2/contacts/id?any=john.doe%40gmail.com
GET /api/v2/contacts/id?any=999888777
Note
The contactType can also be sent in the query string along with the above parameters but it is not required.
Responses
If the request has been successful, meaning the contact exists, you'll get a HTTP 200 OK response along with the contactId which is the unique identifier for your contact and looks something like this: "2e40b702-2767-4abe-ae99-aa510108e22b"
This contactId is what you will then use to fetch the contact's data.
If the request has not been successful, you'll get one of the following HTTP error codes:
400: InvalidEmailAddress, InvalidPhoneNumber, InvalidSocialSecurityNumber, InvalidContactType, InvalidSearchQuery
404: ContactNotFound
409: MultipleMatches
500: InvalidSystemConfiguration
Note
Response codes could change, so always check your Swagger page to see the latest ones.
Multiple responses
It can happen that a search returns more than one contactId. For example, if you do a search with the email parameter and several contacts have given the same email, they will all be returned in that response. That will look like this:
{ "errorCode": "MultipleMatches", "messageDetails": { "multipleMatchesFound": [ "1cdd503c-b8cf-1111-a001-b05b00c888a4", "2a361f42-f831-2222-852d-b0610100adef" ] }, "message": "Exception of type 'Voyado.Api.ApiException' was thrown.", "requestId": "f0930fe5-3333-4700-dddd-2ab2653ddf0c" }
For multiple matches, contact IDs are returned sorted by CreationTime and in ascending order. This means in the order in which they were created, with the earliest created coming first.
Important
As can be seen in all of the examples above, the parameters sent in a query string must always be URL encoded.