Missions¶
A mission is the fundamental unit of work in AMP. It represents a content objective that the pipeline executes autonomously.
What is a Mission?¶
A mission defines:
- What you want to achieve (objectives)
- Where content should appear (platforms)
- How content should behave (constraints)
- When to start and end (duration)
- Success criteria (KPIs)
Think of a mission as a self-executing content campaign. You define the parameters, and AMP handles everything else.
Mission Structure¶
{
"id": "msn_2xK9mPqR4vN8sT3w",
"name": "Q1 Developer Outreach",
"description": "Build awareness in the developer community",
"status": "active",
"objectives": [
"Increase brand awareness among developers",
"Drive traffic to documentation",
"Generate beta signup interest"
],
"platforms": ["twitter", "linkedin"],
"constraints": {
"tone": "professional yet approachable",
"cadence": "daily",
"posts_per_day": 2,
"posting_times": ["09:00", "14:00"],
"timezone": "America/New_York",
"require_approval": false,
"budget_cents": 100000,
"excluded_topics": ["pricing", "competitors"]
},
"kpis": [
{
"metric": "engagement_rate",
"target": 4.0,
"platform": "all"
},
{
"metric": "impressions",
"target": 100000,
"platform": "all"
}
],
"duration_days": 90,
"starts_at": "2024-01-15T00:00:00Z",
"ends_at": "2024-04-14T23:59:59Z",
"created_at": "2024-01-10T10:30:00Z",
"updated_at": "2024-01-10T10:30:00Z"
}
Objectives¶
Objectives are the strategic goals of your mission. They guide the AI in creating relevant content.
Writing Good Objectives¶
| Good Objective | Why It's Good |
|---|---|
| "Establish thought leadership in API design" | Specific topic, clear intent |
| "Drive traffic to /docs/getting-started" | Specific destination, measurable |
| "Increase engagement with developer community" | Clear audience, actionable |
| Weak Objective | Why It's Weak |
|---|---|
| "Get more followers" | Too vague, no strategic direction |
| "Be more visible" | No clear action or outcome |
| "Post good content" | Subjective, not actionable |
Multiple Objectives¶
Missions can have multiple objectives. The AI balances them:
{
"objectives": [
"Establish expertise in cloud infrastructure",
"Humanize the brand through team stories",
"Promote upcoming conference speaking slots"
]
}
The strategy stage will create content pillars that address each objective.
Platforms¶
Define where content should be published:
| Platform | ID | Content Types |
|---|---|---|
| Twitter/X | twitter | posts, threads, polls |
linkedin | posts, articles, polls | |
instagram | posts, carousels, reels, stories | |
facebook | posts, stories | |
| TikTok | tiktok | videos |
| YouTube | youtube | videos, shorts |
| Threads | threads | posts |
| Blog | blog | articles |
Platform-Specific Optimization¶
AMP automatically optimizes content for each platform:
- Twitter: Concise, punchy, hashtag-optimized
- LinkedIn: Professional, longer-form, industry-focused
- Instagram: Visual-first, story-driven, emoji-friendly
Constraints¶
Constraints are rules the AI must follow when generating content.
Tone¶
Common tones:
professional— Formal, business-appropriatecasual— Relaxed, conversationaltechnical— Precise, jargon-acceptableinspirational— Uplifting, motivationalhumorous— Light, witty
Cadence¶
How often to post:
| Cadence | Description |
|---|---|
hourly | Multiple times per day (high volume) |
daily | Once or twice daily |
weekly | 2-3 times per week |
bi_weekly | Once per week |
monthly | A few times per month |
custom | Define with cron expression |
{
"constraints": {
"cadence": "daily",
"posts_per_day": 2,
"posting_times": ["09:00", "14:00"],
"timezone": "America/New_York"
}
}
Approval Requirements¶
Control whether content publishes automatically:
require_approval: false— Content publishes automaticallyrequire_approval: true— Content waits for manual approvalauto_approve_after_hours— Auto-approve if not reviewed in time
Budget¶
Limit AI generation costs:
The pipeline stops generating new content when budget is exhausted.
Excluded Topics¶
Topics to avoid in generated content:
{
"constraints": {
"excluded_topics": [
"politics",
"religion",
"competitor names",
"pricing details",
"unreleased features"
]
}
}
KPIs¶
Key Performance Indicators define success criteria.
Available Metrics¶
| Metric | Description | Platforms |
|---|---|---|
engagement_rate | (likes + comments + shares) / impressions | All |
impressions | Total content views | All |
clicks | Link clicks | All |
likes | Like/favorite count | All |
comments | Comment count | All |
shares | Share/retweet count | All |
followers_gained | New followers during mission | All |
video_views | Video view count | Video platforms |
reach | Unique accounts reached | All |
Setting Targets¶
{
"kpis": [
{
"metric": "engagement_rate",
"target": 4.0,
"platform": "twitter"
},
{
"metric": "engagement_rate",
"target": 2.5,
"platform": "linkedin"
},
{
"metric": "impressions",
"target": 100000,
"platform": "all"
}
]
}
Tips:
- Use platform-specific targets (engagement varies by platform)
- Set realistic targets based on historical data
- The optimization stage uses KPIs to improve content
Mission Lifecycle¶
stateDiagram-v2
[*] --> draft: Create Mission
draft --> active: Start Mission
active --> paused: Pause
paused --> active: Resume
active --> completed: Duration Ends
completed --> [*]
paused --> completed: End Early States¶
| State | Description |
|---|---|
draft | Mission defined but not started |
active | Pipeline executing, content publishing |
paused | Temporarily stopped |
completed | Duration ended or manually completed |
State Transitions¶
Start a mission:
curl -X POST https://api.amp.dev/v1/missions \
-H "Authorization: Bearer $AMP_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "My Mission",
"objectives": ["..."],
"platforms": ["twitter"],
"start_immediately": true
}'
Pause a mission:
curl -X POST https://api.amp.dev/v1/missions/msn_xxx/pause \
-H "Authorization: Bearer $AMP_API_KEY"
Resume a mission:
curl -X POST https://api.amp.dev/v1/missions/msn_xxx/resume \
-H "Authorization: Bearer $AMP_API_KEY"
Updating Missions¶
Active missions can be updated mid-flight:
curl -X PUT https://api.amp.dev/v1/missions/msn_xxx \
-H "Authorization: Bearer $AMP_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"constraints": {
"posts_per_day": 3,
"excluded_topics": ["new_sensitive_topic"]
}
}'
Changes take effect on the next pipeline cycle.
What Can Be Updated¶
| Field | Can Update? | Notes |
|---|---|---|
name | Yes | Immediate |
description | Yes | Immediate |
objectives | Yes | Next cycle |
platforms | No | Create new mission |
constraints | Yes | Next cycle |
kpis | Yes | Affects optimization |
duration_days | Yes | Extends/shortens mission |
Mission Templates¶
Save time with mission templates:
# Create template from existing mission
curl -X POST https://api.amp.dev/v1/missions/msn_xxx/template \
-H "Authorization: Bearer $AMP_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"template_name": "Standard Launch Campaign"
}'
# Create mission from template
curl -X POST https://api.amp.dev/v1/missions \
-H "Authorization: Bearer $AMP_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"template_id": "tpl_xxx",
"name": "Q2 Product Launch",
"duration_days": 30
}'
Best Practices¶
1. Start Focused¶
Begin with a single, clear objective:
Add complexity after you understand what works.
2. Set Realistic KPIs¶
Base targets on historical data, not aspirations. The optimization stage works better with achievable goals.
3. Use Appropriate Cadence¶
| Audience Type | Recommended Cadence |
|---|---|
| B2B Enterprise | 1-2 posts/day |
| B2B Startup | 2-3 posts/day |
| Consumer | 3-5 posts/day |
| Media/News | 5-10 posts/day |
4. Define Clear Constraints¶
Vague constraints produce inconsistent content:
5. Review Before Scaling¶
Start with require_approval: true until you're confident in content quality, then enable auto-publishing.