Templates
Industry-organized starting points for common voice-agent use cases.
osmTalk ships 13 built-in templates across 8 categories so you don't have to write a system prompt from scratch.
Pick one
Open Agents → New Agent and:
- Choose a quality preset (Fast / Balanced / Premium)
- Filter templates by category or search by keyword (e.g.
clinic,lead,refill) - Click "Use" — the template's system prompt + welcome message + name are pre-filled and the agent is created with your chosen preset
You can edit everything after the agent is created. Templates are a starting point, not a contract.
Catalog
| Category | Templates |
|---|---|
| Support | Customer Support, Tier-1 Troubleshooting |
| Sales | Inbound Sales, Outbound Cold Outreach |
| Reception & IVR | Virtual Receptionist, IVR Router |
| Healthcare | Clinic Appointment Booking, Pharmacy Refill |
| Real Estate | Real-Estate Lead Qualifier |
| Booking | Appointment Booking |
| Research & Survey | Customer Survey |
| Logistics | Delivery Status |
Each template includes:
- Name — the first name the agent introduces itself as
- Tagline — one-line description for the picker
- System prompt — voice-tuned: short turns, one question at a time, no markdown
- Welcome message — first thing the agent says
- Recommended preset — the quality tier that fits the use case (e.g., IVR Router defaults to Fast; Premium Sales defaults to Balanced or Premium)
- Tags — searchable keywords (industry, sub-vertical)
Fetch programmatically
Templates are pure config and exposed on a public endpoint (no auth required) so SDKs, CLI tools, and AI assistants can list them.
# All templates
curl https://api.osmtalk.com/api/templates
# Filter by category
curl https://api.osmtalk.com/api/templates?category=healthcare
# Full-text search
curl https://api.osmtalk.com/api/templates?q=refillResponse shape:
{
"categories": [
{ "id": "support", "label": "Support" },
{ "id": "sales", "label": "Sales" },
...
],
"templates": [
{
"id": "support-general",
"label": "Customer Support",
"category": "support",
"name": "Maya",
"tagline": "Empathetic help-desk agent for general support",
"recommendedPreset": "balanced",
"tags": ["saas", "ecommerce", "subscription"],
"systemPrompt": "...",
"welcomeMessage": "Hi there! Thanks for calling. How can I help you today?"
}
]
}SDK
// TypeScript
import { Osmtalk } from "@osmapi/osmtalk-sdk";
const osm = new Osmtalk({ apiKey: "..." });
const { templates } = await osm.platform.getTemplates({ category: "healthcare" });# Python
from osmtalk import Osmtalk
osm = Osmtalk(api_key="...")
data = osm.platform.list_templates(category="healthcare")MCP
If you're using the osmTalk MCP server, the list_templates tool returns the catalog as markdown — useful for asking Claude "find me a template for a pizza ordering agent".
Why no markdown in the prompts?
Voice agents speak — they don't write. Markdown sections (## Personality, **bold**) leak into the editor as literal # and * characters and don't help the LLM produce better voice replies. Templates use plain-text PERSONALITY / CONVERSATION FLOW / RULES blocks instead.
If you generate a prompt via "Generate with AI", the response is sanitized server-side to strip any markdown the LLM produced.
Save your own templates
The 13 built-in templates are a starting point. Once you've tuned a system prompt that works well for your business, save it as a custom template so the whole team can pick it from the same picker.
To save: open any agent's Config tab, scroll to System Prompt, click Save as template. Enter a label your team will recognize.
To use: open Agents → New Agent. The custom templates appear at the top under "Saved by your team" with the rest of the picker.
Custom templates are org-scoped — each team's library is isolated. They live in the user_agent_templates table and are exposed at the same /api/templates endpoint, prefixed with custom: IDs so they never collide with built-ins:
# Save a template via the API
curl -X POST https://api.osmtalk.com/api/templates \
-H "Authorization: Bearer $OSMTALK_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"label": "Renewal Follow-up",
"name": "Priya",
"category": "sales",
"recommendedPreset": "balanced",
"tags": ["renewal", "saas"],
"systemPrompt": "You are a renewal specialist...",
"welcomeMessage": "Hi, this is Priya calling about your subscription"
}'
# Delete a custom template (built-in IDs are rejected)
curl -X DELETE https://api.osmtalk.com/api/templates/custom:tpl_xyz \
-H "Authorization: Bearer $OSMTALK_API_KEY"SDK
// TypeScript
await client.platform.getTemplates(); // built-ins + your team's saved# Python
osm.platform.list_templates()Both return the merged list when called with a valid session/API key; anonymous calls return only the built-ins.