Skip to content

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 linkedin posts, articles, polls
Instagram instagram posts, carousels, reels, stories
Facebook 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

{
  "constraints": {
    "tone": "professional yet approachable"
  }
}

Common tones:

  • professional — Formal, business-appropriate
  • casual — Relaxed, conversational
  • technical — Precise, jargon-acceptable
  • inspirational — Uplifting, motivational
  • humorous — 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:

{
  "constraints": {
    "require_approval": true,
    "auto_approve_after_hours": 24
  }
}
  • require_approval: false — Content publishes automatically
  • require_approval: true — Content waits for manual approval
  • auto_approve_after_hours — Auto-approve if not reviewed in time

Budget

Limit AI generation costs:

{
  "constraints": {
    "budget_cents": 50000
  }
}

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:

{
  "objectives": ["Drive signups for beta program"]
}

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:

// Too vague
{"tone": "good"}

// Clear
{"tone": "authoritative but accessible, avoiding jargon"}

5. Review Before Scaling

Start with require_approval: true until you're confident in content quality, then enable auto-publishing.