curl --request PATCH \
--url https://api.attio.com/v2/meetings/{meeting_id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"data": {
"linked_records": [
{
"object": "people",
"record_id": "891dcbfc-9141-415d-9b2a-2238a6cc012d"
}
]
}
}
'import requests
url = "https://api.attio.com/v2/meetings/{meeting_id}"
payload = { "data": { "linked_records": [
{
"object": "people",
"record_id": "891dcbfc-9141-415d-9b2a-2238a6cc012d"
}
] } }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
data: {
linked_records: [{object: 'people', record_id: '891dcbfc-9141-415d-9b2a-2238a6cc012d'}]
}
})
};
fetch('https://api.attio.com/v2/meetings/{meeting_id}', 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://api.attio.com/v2/meetings/{meeting_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'data' => [
'linked_records' => [
[
'object' => 'people',
'record_id' => '891dcbfc-9141-415d-9b2a-2238a6cc012d'
]
]
]
]),
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://api.attio.com/v2/meetings/{meeting_id}"
payload := strings.NewReader("{\n \"data\": {\n \"linked_records\": [\n {\n \"object\": \"people\",\n \"record_id\": \"891dcbfc-9141-415d-9b2a-2238a6cc012d\"\n }\n ]\n }\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://api.attio.com/v2/meetings/{meeting_id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"data\": {\n \"linked_records\": [\n {\n \"object\": \"people\",\n \"record_id\": \"891dcbfc-9141-415d-9b2a-2238a6cc012d\"\n }\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.attio.com/v2/meetings/{meeting_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"data\": {\n \"linked_records\": [\n {\n \"object\": \"people\",\n \"record_id\": \"891dcbfc-9141-415d-9b2a-2238a6cc012d\"\n }\n ]\n }\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": {
"workspace_id": "14beef7a-99f7-4534-a87e-70b564330a4c",
"meeting_id": "cb59ab17-ad15-460c-a126-0715617c0853"
},
"title": "Onboarding Session",
"description": "Getting you up to speed with the platform and answering any questions you have.",
"is_all_day": false,
"start": {
"datetime": "2027-11-27T14:00:00.000-04:00",
"timezone": "America/New_York"
},
"end": {
"datetime": "2027-11-27T15:00:00.000-04:00",
"timezone": "America/New_York"
},
"participants": [
{
"status": "accepted",
"is_organizer": false,
"email_address": "person@company.com",
"name": "Simon Mitchell"
}
],
"linked_records": [
{
"object_slug": "people",
"object_id": "891dcbfc-9141-415d-9b2a-2238a6cc012d",
"record_id": "891dcbfc-9141-415d-9b2a-2238a6cc012d"
}
],
"created_at": "2023-01-01T15:00:00.000000000Z",
"created_by_actor": {
"type": "workspace-member",
"id": "50cf242c-7fa3-4cad-87d0-75b1af71c57b"
}
}
}{
"status_code": 400,
"type": "invalid_request_error",
"code": "value_not_found",
"message": "Could not find record for values passed to the linked_records field. Please ensure that all values you are trying to set have a corresponding record that already exists in Attio."
}{
"status_code": 404,
"type": "invalid_request_error",
"code": "not_found",
"message": "Meeting with ID \"cb59ab17-ad15-460c-a126-0715617c0853\" was not found."
}Update a meeting (append linked records)
Links records to a meeting. The records supplied are added to the meeting’s existing linked records, and records which are already linked are ignored. Use the PUT endpoint to replace or remove linked records.
No other meeting fields can be updated. Attio automatically links the meeting participants’ companies to the meeting; this behavior is asynchronous.
This endpoint is in beta. We will aim to avoid breaking changes, but small updates may be made as we roll out to more users.
Required scopes: meeting:read-write, record_permission:read.
curl --request PATCH \
--url https://api.attio.com/v2/meetings/{meeting_id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"data": {
"linked_records": [
{
"object": "people",
"record_id": "891dcbfc-9141-415d-9b2a-2238a6cc012d"
}
]
}
}
'import requests
url = "https://api.attio.com/v2/meetings/{meeting_id}"
payload = { "data": { "linked_records": [
{
"object": "people",
"record_id": "891dcbfc-9141-415d-9b2a-2238a6cc012d"
}
] } }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
data: {
linked_records: [{object: 'people', record_id: '891dcbfc-9141-415d-9b2a-2238a6cc012d'}]
}
})
};
fetch('https://api.attio.com/v2/meetings/{meeting_id}', 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://api.attio.com/v2/meetings/{meeting_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'data' => [
'linked_records' => [
[
'object' => 'people',
'record_id' => '891dcbfc-9141-415d-9b2a-2238a6cc012d'
]
]
]
]),
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://api.attio.com/v2/meetings/{meeting_id}"
payload := strings.NewReader("{\n \"data\": {\n \"linked_records\": [\n {\n \"object\": \"people\",\n \"record_id\": \"891dcbfc-9141-415d-9b2a-2238a6cc012d\"\n }\n ]\n }\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://api.attio.com/v2/meetings/{meeting_id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"data\": {\n \"linked_records\": [\n {\n \"object\": \"people\",\n \"record_id\": \"891dcbfc-9141-415d-9b2a-2238a6cc012d\"\n }\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.attio.com/v2/meetings/{meeting_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"data\": {\n \"linked_records\": [\n {\n \"object\": \"people\",\n \"record_id\": \"891dcbfc-9141-415d-9b2a-2238a6cc012d\"\n }\n ]\n }\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": {
"workspace_id": "14beef7a-99f7-4534-a87e-70b564330a4c",
"meeting_id": "cb59ab17-ad15-460c-a126-0715617c0853"
},
"title": "Onboarding Session",
"description": "Getting you up to speed with the platform and answering any questions you have.",
"is_all_day": false,
"start": {
"datetime": "2027-11-27T14:00:00.000-04:00",
"timezone": "America/New_York"
},
"end": {
"datetime": "2027-11-27T15:00:00.000-04:00",
"timezone": "America/New_York"
},
"participants": [
{
"status": "accepted",
"is_organizer": false,
"email_address": "person@company.com",
"name": "Simon Mitchell"
}
],
"linked_records": [
{
"object_slug": "people",
"object_id": "891dcbfc-9141-415d-9b2a-2238a6cc012d",
"record_id": "891dcbfc-9141-415d-9b2a-2238a6cc012d"
}
],
"created_at": "2023-01-01T15:00:00.000000000Z",
"created_by_actor": {
"type": "workspace-member",
"id": "50cf242c-7fa3-4cad-87d0-75b1af71c57b"
}
}
}{
"status_code": 400,
"type": "invalid_request_error",
"code": "value_not_found",
"message": "Could not find record for values passed to the linked_records field. Please ensure that all values you are trying to set have a corresponding record that already exists in Attio."
}{
"status_code": 404,
"type": "invalid_request_error",
"code": "not_found",
"message": "Meeting with ID \"cb59ab17-ad15-460c-a126-0715617c0853\" was not found."
}Authorizations
This API uses OAuth 2.0 with the authorization code grant flow.
Path Parameters
A UUID which identifies the meeting to update.
"cb59ab17-ad15-460c-a126-0715617c0853"
Body
Show child attributes
Show child attributes
Response
Success
Success
Show child attributes
Show child attributes
Was this page helpful?