Context Layer · 3 of 5
Content Types
How to control the format and structure of anything Senso generates.
List before you create
Most requests are already covered by an existing type. Creating a near-duplicate makes the library harder to choose from, and generation calls start picking the wrong one. Check first, and only add a type when nothing fits.
The config fields
template
The most important field. Format, structure, length and style. The engine follows it as its primary instruction.
writing_rules
Format-specific rules, layered on top of the brand kit’s global ones.
cta_text
Call to action appended to the output. Omit if the format does not need one.
cta_destination
Where the CTA points. Only used when cta_text is set.
curl -X POST https://apiv2.senso.ai/api/v1/org/content-types \
-H "X-API-Key: $SENSO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Product FAQ",
"config": {
"template": "A question as an H2, then a direct answer in under 100 words, then the sources it came from. No preamble.",
"writing_rules": [
"Answer in the first sentence",
"One question per section"
]
}
}'The template is the instruction
Be explicit about structure, or the output will not be predictable.
Vague: “A blog post about the topic.”
Specific: “A 1000–1500 word blog post. Start with a hook that poses a question. H2 subheadings every 2–3 paragraphs. A key-takeaway callout after the introduction. End with a 2–3 sentence summary and a single CTA.”
How rules layer
Two sets of rules are active during generation, and they are for different jobs.
- Brand Kit global_writing_rules — organization-wide standards. Voice, sentence length, acronym policy.
- Content Type writing_rules — format-specific. "Include a comparison table" makes sense for a comparison page and nowhere else.
Do not repeat yourself
If “use active voice” is already in the brand kit, it does not belong in every content type as well.
Types worth having
FAQ
Question, direct answer, sources. The most citable shape.
Comparison
Criteria table, verdict, caveats. Balanced about competitors.
Explainer
Summary first, then detail. Good for awareness-stage questions.
Blog post
Longer form, human-facing. Where voice matters most.
Agent-facing and human-facing are different jobs
Content written to be read by an agent leans on facts and structure. Content for humans leans on voice. The same template rarely does both well.
Updating
PATCH merges the keys you send; PUT replaces the whole config. Read, merge, write.
senso content-types list --output json
senso content-types create --data '{"name": "Product FAQ", "config": { ... }}'Errors
- 400 — validation error, or an unknown key in config
- 401 — missing or invalid API key
- 409 — a content type with that name already exists
