Skip to content

A recording link lets someone without Faylee, such as a customer, record their screen in the browser and send it to your workspace. The API opens and closes these links, so a support bot or a script can ask for a recording as part of a ticket. For how the person on the other end records, see Recording links.

What comes in through a link is filed under the member who opened it, in the folder the link names. It is a video recording with reporter_name and reporter_email set from what the sender typed.

FieldTypeNotes
idinteger
titlestringShown to the person recording
messagestring or nullShown to the person recording
external_refstring or nullYour reference for the link, such as a ticket URL or id
urlstringThe address to send. Uses the workspace’s own link domain when it has a verified one
expires_atstring or nullISO 8601. null means the link never expires
created_atstringISO 8601
blocked_reasonstring or nullWhy the link no longer accepts recordings, or null while it does

blocked_reason is set when the link has expired, was turned off, or the member who opened it has left the workspace. It is a sentence you can show to a person, for example This link has expired. Ask whoever sent it for a new one.

POST /recording_links with a recording_link object.

FieldTypeRequiredNotes
titlestringyesUp to 120 characters
messagestringnoInstructions for the person recording
external_refstringnoThe ticket or conversation the link is for. It comes back in the recording_link.completed webhook
expires_in_daysintegerno1, 7 or 30. Any other value, or none, means the link never expires
folder_idintegernoWhere recordings sent through the link are filed. A folder from GET /folders
Terminal window
curl -X POST https://app.faylee.app/api/v1/recording_links \
-H "Authorization: Bearer $FAYLEE_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"recording_link": {
"title": "Show us the export problem",
"message": "Open the report, click Export, and narrate what you expected.",
"external_ref": "https://acme.zendesk.com/agent/tickets/4821",
"expires_in_days": 7
}
}'

201 returns the link:

{
"id": 77,
"title": "Show us the export problem",
"message": "Open the report, click Export, and narrate what you expected.",
"external_ref": "https://acme.zendesk.com/agent/tickets/4821",
"expires_at": "2026-10-08T09:12:44.000Z",
"created_at": "2026-10-01T09:12:44.000Z",
"url": "https://app.faylee.app/record/3mQ8xYfL2vNc7RtA9kWpZs4e",
"blocked_reason": null
}

Send url to the person you want a recording from. A missing title, or a folder from another workspace, gets 422. Opening a link is written to the workspace’s audit log.

GET /recording_links returns the workspace’s links that have not been turned off, newest first, up to 100:

{
"recording_links": [
{
"id": 77,
"title": "Show us the export problem",
"message": "Open the report, click Export, and narrate what you expected.",
"external_ref": "https://acme.zendesk.com/agent/tickets/4821",
"expires_at": "2026-10-08T09:12:44.000Z",
"created_at": "2026-10-01T09:12:44.000Z",
"url": "https://app.faylee.app/record/3mQ8xYfL2vNc7RtA9kWpZs4e",
"blocked_reason": null
}
]
}

Expired links stay in the list with blocked_reason set until you turn them off.

DELETE /recording_links/:id stops the link from accepting recordings and returns 204. Recordings already sent through it stay in the workspace. Turning a link off is written to the audit log.

Terminal window
curl -X DELETE https://app.faylee.app/api/v1/recording_links/77 \
-H "Authorization: Bearer $FAYLEE_TOKEN"

Anyone who opens the link afterwards is told it no longer accepts recordings.

Subscribe a webhook endpoint to recording_link.completed. Faylee sends it when someone finishes sending a recording through a link. Its data.recording has source set to recording_link and a recording_link object with the link’s id, title and external_ref, so you can match the recording to the ticket that asked for it.