curl --request PATCH \
--url https://api.meetdarwin.ai/v1/personal_links/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"page": "<string>",
"greeting": "<string>",
"new_greeting": {
"name": "<string>",
"text": "<string>",
"buttons": [
{
"label": "<string>",
"message": "<string>"
}
],
"agent_note": "<string>"
}
}
'const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
page: '<string>',
greeting: '<string>',
new_greeting: {
name: '<string>',
text: '<string>',
buttons: [{label: '<string>', message: '<string>'}],
agent_note: '<string>'
}
})
};
fetch('https://api.meetdarwin.ai/v1/personal_links/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.meetdarwin.ai/v1/personal_links/{id}"
payload = {
"name": "<string>",
"page": "<string>",
"greeting": "<string>",
"new_greeting": {
"name": "<string>",
"text": "<string>",
"buttons": [
{
"label": "<string>",
"message": "<string>"
}
],
"agent_note": "<string>"
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text){
"id": "lk_q4x7mz",
"object": "personal_link",
"name": "<string>",
"page": "<string>",
"greeting": "<string>",
"status": "active",
"url": "https://www.acme.example/pricing?dw=lk_q4x7mz",
"fields": [
"<string>"
],
"templates": {},
"results": {
"days": 0,
"visits": 0,
"chats": 0,
"meetings": 0
}
}{
"type": "https://docs.meetdarwin.ai/api-reference/errors#insufficient_scope",
"title": "<string>",
"status": 0,
"code": "insufficient_scope",
"detail": "<string>",
"request_id": "req_8m2k4p0q1x7z9c3v5b6n",
"param": "<string>"
}{
"type": "https://docs.meetdarwin.ai/api-reference/errors#insufficient_scope",
"title": "<string>",
"status": 0,
"code": "insufficient_scope",
"detail": "<string>",
"request_id": "req_8m2k4p0q1x7z9c3v5b6n",
"param": "<string>"
}{
"type": "https://docs.meetdarwin.ai/api-reference/errors#insufficient_scope",
"title": "<string>",
"status": 0,
"code": "insufficient_scope",
"detail": "<string>",
"request_id": "req_8m2k4p0q1x7z9c3v5b6n",
"param": "<string>"
}{
"type": "https://docs.meetdarwin.ai/api-reference/errors#insufficient_scope",
"title": "<string>",
"status": 0,
"code": "insufficient_scope",
"detail": "<string>",
"request_id": "req_8m2k4p0q1x7z9c3v5b6n",
"param": "<string>"
}{
"type": "https://docs.meetdarwin.ai/api-reference/errors#insufficient_scope",
"title": "<string>",
"status": 0,
"code": "insufficient_scope",
"detail": "<string>",
"request_id": "req_8m2k4p0q1x7z9c3v5b6n",
"param": "<string>"
}{
"type": "https://docs.meetdarwin.ai/api-reference/errors#insufficient_scope",
"title": "<string>",
"status": 0,
"code": "insufficient_scope",
"detail": "<string>",
"request_id": "req_8m2k4p0q1x7z9c3v5b6n",
"param": "<string>"
}{
"type": "https://docs.meetdarwin.ai/api-reference/errors#insufficient_scope",
"title": "<string>",
"status": 0,
"code": "insufficient_scope",
"detail": "<string>",
"request_id": "req_8m2k4p0q1x7z9c3v5b6n",
"param": "<string>"
}{
"type": "https://docs.meetdarwin.ai/api-reference/errors#insufficient_scope",
"title": "<string>",
"status": 0,
"code": "insufficient_scope",
"detail": "<string>",
"request_id": "req_8m2k4p0q1x7z9c3v5b6n",
"param": "<string>"
}Change a personal link
Requires the agent:write scope.
A new greeting reaches every email already sent, because the greeting is looked up by the link’s id. A new page only applies to addresses made after the change.
curl --request PATCH \
--url https://api.meetdarwin.ai/v1/personal_links/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"page": "<string>",
"greeting": "<string>",
"new_greeting": {
"name": "<string>",
"text": "<string>",
"buttons": [
{
"label": "<string>",
"message": "<string>"
}
],
"agent_note": "<string>"
}
}
'const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
page: '<string>',
greeting: '<string>',
new_greeting: {
name: '<string>',
text: '<string>',
buttons: [{label: '<string>', message: '<string>'}],
agent_note: '<string>'
}
})
};
fetch('https://api.meetdarwin.ai/v1/personal_links/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.meetdarwin.ai/v1/personal_links/{id}"
payload = {
"name": "<string>",
"page": "<string>",
"greeting": "<string>",
"new_greeting": {
"name": "<string>",
"text": "<string>",
"buttons": [
{
"label": "<string>",
"message": "<string>"
}
],
"agent_note": "<string>"
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text){
"id": "lk_q4x7mz",
"object": "personal_link",
"name": "<string>",
"page": "<string>",
"greeting": "<string>",
"status": "active",
"url": "https://www.acme.example/pricing?dw=lk_q4x7mz",
"fields": [
"<string>"
],
"templates": {},
"results": {
"days": 0,
"visits": 0,
"chats": 0,
"meetings": 0
}
}{
"type": "https://docs.meetdarwin.ai/api-reference/errors#insufficient_scope",
"title": "<string>",
"status": 0,
"code": "insufficient_scope",
"detail": "<string>",
"request_id": "req_8m2k4p0q1x7z9c3v5b6n",
"param": "<string>"
}{
"type": "https://docs.meetdarwin.ai/api-reference/errors#insufficient_scope",
"title": "<string>",
"status": 0,
"code": "insufficient_scope",
"detail": "<string>",
"request_id": "req_8m2k4p0q1x7z9c3v5b6n",
"param": "<string>"
}{
"type": "https://docs.meetdarwin.ai/api-reference/errors#insufficient_scope",
"title": "<string>",
"status": 0,
"code": "insufficient_scope",
"detail": "<string>",
"request_id": "req_8m2k4p0q1x7z9c3v5b6n",
"param": "<string>"
}{
"type": "https://docs.meetdarwin.ai/api-reference/errors#insufficient_scope",
"title": "<string>",
"status": 0,
"code": "insufficient_scope",
"detail": "<string>",
"request_id": "req_8m2k4p0q1x7z9c3v5b6n",
"param": "<string>"
}{
"type": "https://docs.meetdarwin.ai/api-reference/errors#insufficient_scope",
"title": "<string>",
"status": 0,
"code": "insufficient_scope",
"detail": "<string>",
"request_id": "req_8m2k4p0q1x7z9c3v5b6n",
"param": "<string>"
}{
"type": "https://docs.meetdarwin.ai/api-reference/errors#insufficient_scope",
"title": "<string>",
"status": 0,
"code": "insufficient_scope",
"detail": "<string>",
"request_id": "req_8m2k4p0q1x7z9c3v5b6n",
"param": "<string>"
}{
"type": "https://docs.meetdarwin.ai/api-reference/errors#insufficient_scope",
"title": "<string>",
"status": 0,
"code": "insufficient_scope",
"detail": "<string>",
"request_id": "req_8m2k4p0q1x7z9c3v5b6n",
"param": "<string>"
}{
"type": "https://docs.meetdarwin.ai/api-reference/errors#insufficient_scope",
"title": "<string>",
"status": 0,
"code": "insufficient_scope",
"detail": "<string>",
"request_id": "req_8m2k4p0q1x7z9c3v5b6n",
"param": "<string>"
}Authorizations
A secret key (dk_live_…). Scopes: conversations:read, contacts:read, contacts:write, meetings:read, analytics:read, events:read, webhooks:write, knowledge:read, knowledge:write, agent:read, agent:write, experiments:read, experiments:write, privacy:write, chat:write.
Headers
Retry safely: the first response is replayed for 24 hours (not for streamed answers).
255Path Parameters
Body
What your team calls the campaign, e.g. "Q4 outbound".
1 - 60The page it opens: a path on your website (/pricing) or a full https address. The chat must be installed there.
1 - 500The greeting it shows (gr_…). Null makes it a draft, which greets no one.
^gr_[a-z0-9]{4,16}$Write a new greeting for this link instead of naming one. It is saved to your greetings.
Show child attributes
Show child attributes
Response
OK
^lk_"lk_q4x7mz"
"personal_link"The page it opens: a path on the workspace's website, or a full address.
The greeting it shows (gr_…); null for a draft.
draft: no greeting yet, so it greets no one.
active, draft The page with the link's id. Add a person's details as dw_email, dw_first, dw_last, dw_company and dw_title, or ask POST /personal_links/{id}/urls to do it. Null for a draft.
"https://www.acme.example/pricing?dw=lk_q4x7mz"
The details its greeting uses: first_name, last_name, company, title.
The address with each email tool's merge fields (hubspot, instantly, apollo, outreach, salesloft, lemlist, other), ready to paste into a sequence. Null for a draft.
Show child attributes
Show child attributes
The last 30 days: people who opened it, how many of them chatted, and how many booked. Your team's and test visits are left out.
Show child attributes
Show child attributes