Appearance
Quickstart
Mint your first survey link in about five minutes.
Before you start
You need three things:
- An API key with
survey_links:write— see Authentication. - Your workspace id — the UUID in the platform URL, right after the host:
https://app.zefi.ai/fc5e5bc7-…/settings/api-keys - A campaign id — open the campaign in Surveys; it is the UUID in that page's URL.
Create a link
bash
curl -X POST \
"https://public.eu.zefi.ai/v1/workspace/$WORKSPACE_ID/campaigns/$CAMPAIGN_ID/survey-links" \
-H "Authorization: Bearer $ZEFI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"links": [
{
"reference": "crm-8821",
"metadata": {
"customer_name": "Acme Srl",
"author_email": "sara@acme.it"
}
}
]
}'You get back a URL ready to send:
json
{
"created": 1,
"failed": 0,
"items": [
{
"index": 0,
"reference": "crm-8821",
"status": "created",
"survey_link_id": "984148ac-1746-4b69-bf4e-cbf844e9a480",
"url": "https://survey.zefi.ai/{workspace_id}/{campaign_id}?t=6699146b-…",
"expires_at": "2026-09-26T12:54:39.000Z",
"viewed": false
}
]
}Send url to the person you want to hear from. That is the whole flow.
What the metadata is for
Everything under metadata travels with the answer into Zefi, so a response arrives already attributed instead of anonymous:
customer_name,customer_id— the account the response belongs toauthor_name,author_email— the person who answered
Identity you set here cannot be forged by whoever opens the link. See How survey links behave.
Next
- Creating links in bulk — up to 50 per call, and what happens when one row is bad
- Handling errors — what to retry and what to fix
- API reference — every field, every response