curl --request POST \
--url https://c3uezq47el.execute-api.us-west-2.amazonaws.com/main/integrations/developer/zapier/create-or-update-contact-action \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"developerProvider": "zapier",
"id": "<string>",
"phone": "<string>",
"email": "<string>",
"firstName": "<string>",
"lastName": "<string>",
"properties": {},
"userId": "<string>"
}
'import requests
url = "https://c3uezq47el.execute-api.us-west-2.amazonaws.com/main/integrations/developer/zapier/create-or-update-contact-action"
payload = {
"developerProvider": "zapier",
"id": "<string>",
"phone": "<string>",
"email": "<string>",
"firstName": "<string>",
"lastName": "<string>",
"properties": {},
"userId": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
developerProvider: 'zapier',
id: '<string>',
phone: '<string>',
email: '<string>',
firstName: '<string>',
lastName: '<string>',
properties: {},
userId: '<string>'
})
};
fetch('https://c3uezq47el.execute-api.us-west-2.amazonaws.com/main/integrations/developer/zapier/create-or-update-contact-action', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://c3uezq47el.execute-api.us-west-2.amazonaws.com/main/integrations/developer/zapier/create-or-update-contact-action",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'developerProvider' => 'zapier',
'id' => '<string>',
'phone' => '<string>',
'email' => '<string>',
'firstName' => '<string>',
'lastName' => '<string>',
'properties' => [
],
'userId' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://c3uezq47el.execute-api.us-west-2.amazonaws.com/main/integrations/developer/zapier/create-or-update-contact-action"
payload := strings.NewReader("{\n \"developerProvider\": \"zapier\",\n \"id\": \"<string>\",\n \"phone\": \"<string>\",\n \"email\": \"<string>\",\n \"firstName\": \"<string>\",\n \"lastName\": \"<string>\",\n \"properties\": {},\n \"userId\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://c3uezq47el.execute-api.us-west-2.amazonaws.com/main/integrations/developer/zapier/create-or-update-contact-action")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"developerProvider\": \"zapier\",\n \"id\": \"<string>\",\n \"phone\": \"<string>\",\n \"email\": \"<string>\",\n \"firstName\": \"<string>\",\n \"lastName\": \"<string>\",\n \"properties\": {},\n \"userId\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://c3uezq47el.execute-api.us-west-2.amazonaws.com/main/integrations/developer/zapier/create-or-update-contact-action")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"developerProvider\": \"zapier\",\n \"id\": \"<string>\",\n \"phone\": \"<string>\",\n \"email\": \"<string>\",\n \"firstName\": \"<string>\",\n \"lastName\": \"<string>\",\n \"properties\": {},\n \"userId\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"email": "<string>",
"firstName": "<string>",
"id": "<string>",
"lastName": "<string>",
"phone": "<string>",
"properties": {},
"workspaceId": "<string>"
}{
"error": "workspace not found"
}{
"error": "workspace not found"
}{
"error": "workspace not found"
}[
{
"field": "<string>",
"message": "<string>"
}
]{
"error": "workspace not found"
}Create or update a contact
Upserts a contact keyed on phone. Supplied fields overwrite existing values; omitted fields are left unchanged. userId in the body is ignored.
curl --request POST \
--url https://c3uezq47el.execute-api.us-west-2.amazonaws.com/main/integrations/developer/zapier/create-or-update-contact-action \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"developerProvider": "zapier",
"id": "<string>",
"phone": "<string>",
"email": "<string>",
"firstName": "<string>",
"lastName": "<string>",
"properties": {},
"userId": "<string>"
}
'import requests
url = "https://c3uezq47el.execute-api.us-west-2.amazonaws.com/main/integrations/developer/zapier/create-or-update-contact-action"
payload = {
"developerProvider": "zapier",
"id": "<string>",
"phone": "<string>",
"email": "<string>",
"firstName": "<string>",
"lastName": "<string>",
"properties": {},
"userId": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
developerProvider: 'zapier',
id: '<string>',
phone: '<string>',
email: '<string>',
firstName: '<string>',
lastName: '<string>',
properties: {},
userId: '<string>'
})
};
fetch('https://c3uezq47el.execute-api.us-west-2.amazonaws.com/main/integrations/developer/zapier/create-or-update-contact-action', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://c3uezq47el.execute-api.us-west-2.amazonaws.com/main/integrations/developer/zapier/create-or-update-contact-action",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'developerProvider' => 'zapier',
'id' => '<string>',
'phone' => '<string>',
'email' => '<string>',
'firstName' => '<string>',
'lastName' => '<string>',
'properties' => [
],
'userId' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://c3uezq47el.execute-api.us-west-2.amazonaws.com/main/integrations/developer/zapier/create-or-update-contact-action"
payload := strings.NewReader("{\n \"developerProvider\": \"zapier\",\n \"id\": \"<string>\",\n \"phone\": \"<string>\",\n \"email\": \"<string>\",\n \"firstName\": \"<string>\",\n \"lastName\": \"<string>\",\n \"properties\": {},\n \"userId\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://c3uezq47el.execute-api.us-west-2.amazonaws.com/main/integrations/developer/zapier/create-or-update-contact-action")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"developerProvider\": \"zapier\",\n \"id\": \"<string>\",\n \"phone\": \"<string>\",\n \"email\": \"<string>\",\n \"firstName\": \"<string>\",\n \"lastName\": \"<string>\",\n \"properties\": {},\n \"userId\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://c3uezq47el.execute-api.us-west-2.amazonaws.com/main/integrations/developer/zapier/create-or-update-contact-action")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"developerProvider\": \"zapier\",\n \"id\": \"<string>\",\n \"phone\": \"<string>\",\n \"email\": \"<string>\",\n \"firstName\": \"<string>\",\n \"lastName\": \"<string>\",\n \"properties\": {},\n \"userId\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"email": "<string>",
"firstName": "<string>",
"id": "<string>",
"lastName": "<string>",
"phone": "<string>",
"properties": {},
"workspaceId": "<string>"
}{
"error": "workspace not found"
}{
"error": "workspace not found"
}{
"error": "workspace not found"
}[
{
"field": "<string>",
"message": "<string>"
}
]{
"error": "workspace not found"
}Authorizations
An OAuth 2.0 access token, sent as Authorization: Bearer <token>. MessageDesk is the OAuth 2.0 provider (backed by AWS Cognito): an integration such as Zapier obtains the token through the authorization-code flow when a user connects their MessageDesk account. Access tokens are valid for 24 hours and are refreshed with the refresh token.
Body
Contact to create or update
Contact to create or update
Integration provider making the request
zapier Workspace ID the request targets
45Contact phone number in E.164 format
Contact email address
Contact first name
255Contact last name
255Custom contact property values keyed by property name
Show child attributes
Show child attributes
Optional acting user; overwritten with the authenticated user on endpoints that record authorship
45Was this page helpful?

