⚠️ DEPRECATED — V2 Migration Recommended
This is a V1 skill (template-based loops). It still works for backward compatibility.
V2 equivalent: Use bolta.job.execute with a Content Creator agent instead.
Why migrate to V2?
- Adaptive generation: Agents reason about context instead of filling templates
- Learning: Agents improve over time based on performance data
- Flexibility: Natural language instructions instead of rigid template variables
- Memory: Agents remember what works and adapt their approach
Migration path:
- Create Content Creator agent via
bolta.agent.hire
- Create Job with natural language instructions (e.g., "Create 7 LinkedIn posts about remote work best practices")
- Bind voice_profile_id, account_ids to the job
- Activate job via
bolta.agent.activate_job
- Agent generates posts adaptively (not template fills)
For details, see: skills/automation-plane/DEPRECATED.md
Goal
Turn a template into a real loop with multiple posts, all routed to review.
Hard rules
- Always query workspace policy + capabilities.
- Always route to Inbox Review (pending review). Do not schedule or publish from this skill.
Steps
- Fetch policy + capabilities.
- Create the loop shell:
bolta.create_loop({workspace_id, voice_profile_id, template_id, horizon_days, cadence, account_ids})
- For each slot in the loop horizon:
- Choose a topic seed (rotate through provided topic_seeds; if none, derive 5–10 from template theme).
- Render template:
bolta.render_template(template_id, {voice_profile_id, topic_seed, slot_index})
- Create draft post:
bolta.create_post({workspace_id, voice_profile_id, account_ids, body, status: "draft", metadata: {loop_id, slot_index}})
- Submit as a single review bundle:
bolta.submit_for_review({workspace_id, post_ids, note: "Loop generated from template"})
Output
Return loop_id, post_ids, review_bundle_id, final_state=pending_review.
Failure handling
- If some posts fail creation, still submit the ones that succeeded.
- Add warnings listing failed slots.
1---2name: bolta-loop-from-template3description: Create a recurring content loop from a template using a voice profile, then send all generated posts into Inbox Review as a bundle.4---56## ⚠️ DEPRECATED — V2 Migration Recommended78**This is a V1 skill (template-based loops).** It still works for backward compatibility.910**V2 equivalent:** Use `bolta.job.execute` with a Content Creator agent instead.1112### Why migrate to V2?13- **Adaptive generation:** Agents reason about context instead of filling templates14- **Learning:** Agents improve over time based on performance data15- **Flexibility:** Natural language instructions instead of rigid template variables16- **Memory:** Agents remember what works and adapt their approach1718### Migration path:191. Create Content Creator agent via `bolta.agent.hire`202. Create Job with natural language instructions (e.g., "Create 7 LinkedIn posts about remote work best practices")213. Bind voice_profile_id, account_ids to the job224. Activate job via `bolta.agent.activate_job`235. Agent generates posts adaptively (not template fills)2425**For details, see:** `skills/automation-plane/DEPRECATED.md`2627---2829## Goal30Turn a template into a real loop with multiple posts, all routed to review.3132## Hard rules33- Always query workspace policy + capabilities.34- Always route to Inbox Review (pending review). Do not schedule or publish from this skill.3536## Steps371. Fetch policy + capabilities.382. Create the loop shell:39 - `bolta.create_loop({workspace_id, voice_profile_id, template_id, horizon_days, cadence, account_ids})`403. For each slot in the loop horizon:41 - Choose a topic seed (rotate through provided topic_seeds; if none, derive 5–10 from template theme).42 - Render template:43 - `bolta.render_template(template_id, {voice_profile_id, topic_seed, slot_index})`44 - Create draft post:45 - `bolta.create_post({workspace_id, voice_profile_id, account_ids, body, status: "draft", metadata: {loop_id, slot_index}})`464. Submit as a single review bundle:47 - `bolta.submit_for_review({workspace_id, post_ids, note: "Loop generated from template"})`4849## Output50Return loop_id, post_ids, review_bundle_id, final_state=pending_review.5152## Failure handling53- If some posts fail creation, still submit the ones that succeeded.54- Add warnings listing failed slots.