Upsert persona
Upsert your workspace's ideal customer profile targeting criteria.
Upsert persona
Deprecated — use Create persona or Update persona instead
This endpoint only ever replaces your workspace's oldest persona, so it cannot create a second business line. It keeps answering, but will be removed in a future major version. Use Create persona to create one and Update persona to update one instead.
PUT/api/v2/persona
Request body
job_title and location are required; the other fields are optional. Provide the optional fields you want to set or update.
| Field | Type | Description |
|---|---|---|
| job_title | string[] | Required. Target job titles — at least one entry. |
| exclude_job_title | string[] | Job titles to exclude. |
| location | string[] | Required. Target locations — at least one entry. Include at least one country (a city alone is not enough) so account mapping can run. |
| headcount | string[] | Target headcount ranges. Valid values: 1-10, 11-50, 51-200, 201-500, 501-1,000, 1,001-5,000, 5,001-10,000, 10,001+. |
| industry | string[] | Target industries. |
| seniority | string[] | Target seniority levels. Valid values: owner, founder, c_suite, partner, vp, head, director, manager, senior, entry, intern. |
| additional_info | string | Additional free-text persona context. |
| tag | string | Short free-form label you can set to recognise this persona in your own systems. Never used for targeting. Max 255 characters. A tag can belong to only one persona per workspace — reusing one returns 409 Conflict. |
Example request
curl -X PUT "https://api.getsillage.com/api/v2/persona" \
-H "Authorization: Bearer $SILLAGE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"job_title": ["VP Sales", "Head of Sales"],
"seniority": ["vp", "director"],
"location": ["France", "Germany"],
"tag": "enterprise-emea"
}'Example response
{
"data": {
"id": 1234
}
}A submitted persona missing a job title, with a location that could not be resolved to a country — warnings appears only when there is something to flag:
{
"data": {
"id": 1234
},
"warnings": [
"No job_title set. Content generation and account mapping will target every job title until this is set.",
"None of the submitted locations could be resolved to a country. Account mapping will not run until this is fixed."
]
}Response fields
| Field | Type | Description |
|---|---|---|
| data.id | integer | Persona SQL id. |
| warnings | string[] | Non-blocking notices about the persona you just submitted, for example a missing job title or location, or a location that could not be matched to a country. The persona is saved either way. Omitted from the response when there is nothing to flag. |