Templates
Reusable formats and layouts
A template is a reusable post shell. You define the structure once — copy, hashtags, channel mix, media slot — then launch any number of actual posts from it by filling in the blanks.
When templates are worth making
- Weekly product updates— same header, changing content block.
- Launch announcements— one structure, different products.
- Thread templates— hook → points → CTA, with placeholders.
- Repeating series— “Founder Friday,” “Build in public #N,” weekly digests.
Create a template
Start from a post or a blank template
Either click Save as template on any draft, or go to Templates → + New and build from scratch.
Add placeholders
Wrap any variable in {{} to mark it as a placeholder. E.g., {{product}, {{price}, {{url}. When you launch a post from the template, the composer prompts for each placeholder.
Set defaults
Pick default channels, default hashtags, default media slots. Every default is overridable at launch time.
Share with the team
Templates are workspace-wide by default. Admins can also mark a template as “personal” (visible only to them) or “required” (every post to a channel must use this template — useful for brand-governance use cases).
Template example
🚀 Now live: {{feature}}
The short version: {{one_liner}}
Full writeup → {{blog_url}}
#launch #{{hashtag}}
Launching from this template opens a 3-field form: feature, one_liner, blog_url, hashtag. Fill in, confirm, post is created.
Templates in the API
# List templates
GET /v1/templates
# Create from template
POST /v1/posts
{
"template_id": "tpl_launch_announce",
"variables": {
"feature": "Carousel scheduling",
"one_liner": "Plan IG carousels in 30 seconds.",
"blog_url": "https://openpost.so/blog/carousel-scheduling",
"hashtag": "carousel"
},
"schedule_at": "2026-05-01T14:00:00Z"
}
Editing a template
Edits to a template apply to new posts created from it. Existing posts (drafts or scheduled) keep the content they were launched with. This is intentional — we don’t want a template edit to retroactively change posts that are already in flight.