Reach out
Writes to a customer first and opens a new conversation. The message lands in their widget on their next visit, with an email copy if they are away, or goes by email when that is the only way to reach them. as: "agent" sends it as the AI agent, which then answers their reply; the default sends it as the caller, whose thread it becomes. subject only shows on an email; brief is kept as a note on the thread and only with as: "agent".
POST
/customers/{id}/reach-outAuthorization
AuthorizationBearer token · headerrequired`MEDIAN_KEY` from Settings under API, or an MCP OAuth access token. A key acts as the organization; a token acts as the person who approved it.
Path parameters
idstringrequiredA customer id.
Request body
requiredapplication/jsonbodystringrequiredsubjectstringasstringAllowed:
meagentbriefstringResponses
201The conversation it opened.
conversationIdstring400The request is malformed, and the message names the field.
errorobjectShow propertiesHide properties
codestringmessagestring401The bearer token is missing, revoked, or expired.
errorobjectShow propertiesHide properties
codestringmessagestring404Not one of yours, or not there at all.
errorobjectShow propertiesHide properties
codestringmessagestring429Too many requests. Wait the seconds in `Retry-After`. Limits depend on the plan. See [rate limits](/api/errors-and-limits#rate-limits).
errorobjectShow propertiesHide properties
codestringmessagestringRequest
curl -X POST "https://api.median.sh/v1/customers/string/reach-out" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"body": "string",
"subject": "string",
"as": "me",
"brief": "string"
}'const response = await fetch("https://api.median.sh/v1/customers/string/reach-out", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_TOKEN",
"Content-Type": "application/json"
},
body: JSON.stringify({
"body": "string",
"subject": "string",
"as": "me",
"brief": "string"
})
});Response
{
"conversationId": "string"
}{
"error": {
"code": "string",
"message": "string"
}
}{
"error": {
"code": "string",
"message": "string"
}
}{
"error": {
"code": "string",
"message": "string"
}
}{
"error": {
"code": "string",
"message": "string"
}
}