3.6 KiB
Campaign Management
Campaigns are the top-level organizational unit for backlink outreach. Every lead, email, attempt, reply, and analytics data point belongs to a campaign.
Creating a Campaign
A campaign requires only a name. Add a description and keywords to make discovery and reporting easier.
API: POST /api/v1/backlink-outreach/campaigns
{
"name": "SaaS Growth Blogs Q3",
"description": "Outreach to SaaS marketing blogs for guest post placements",
"keywords": ["SaaS", "growth marketing", "B2B"]
}
UI: Navigate to Backlink Outreach → Campaigns → + New Campaign.
!!! tip "Naming conventions"
Use a consistent naming scheme like [Vertical] [Content Type] [Period] — e.g., "Fitness Guest Posts June" or "AI Startups Roundup Q3".
!!! warning "Ownership validation"
Campaigns are scoped to the authenticated user. API calls with a campaign_id that does not exist or belongs to another user return 404 BacklinkCampaignNotFoundError. This applies to all campaign operations (get, delete, add leads, send emails, etc.).
Campaign List View
The campaign list shows:
- Name and description
- Lead count broken down by status
- Creation date
- Quick actions: Add leads, view analytics, manage templates
Campaign Detail View
Click a campaign to see its full detail:
- Leads tab: All leads with status, quality score, and actions.
- Email tab: Compose and preview outreach emails.
- Outreach tab: Send emails, view attempts, manage follow-ups.
- Inbox tab: Replies with auto-classification tags.
- Analytics tab: Campaign-specific charts and metrics.
Managing Leads
Adding Leads
Single lead:
POST /api/v1/backlink-outreach/campaigns/{campaign_id}/leads
{
"website_url": "https://example.com",
"website_title": "Example Marketing Blog",
"contact_email": "editor@example.com",
"quality_score": 0.85,
"relevance_score": 0.72,
"guest_post_likelihood": 0.65,
"source": "manual"
}
Bulk add:
POST /api/v1/backlink-outreach/campaigns/{campaign_id}/leads/bulk
Send an array of lead objects to add multiple leads at once.
Updating Lead Status
Lead status lifecycle:
stateDiagram-v2
[*] --> discovered
discovered --> contacted: Send outreach email
contacted --> replied: Lead replies (interested)
contacted --> bounced: Email bounced / not interested
replied --> placed: Backlink published
replied --> lost: Lead declined after reply
placed --> [*]
lost --> [*]
bounced --> [*]
Single update: Click the status button on a lead card.
Bulk update: Select multiple leads → choose new status → confirm.
!!! warning "Bulk status updates"
Bulk updates may partially fail. If some leads can't be updated, the response includes a failed list and the UI shows a warning toast with the count of failures.
Deleting a Campaign
DELETE /api/v1/backlink-outreach/campaigns/{campaign_id}
!!! warning "Irreversible" Deleting a campaign removes all associated leads, attempts, replies, and analytics data. This action cannot be undone.
Campaign Organization Best Practices
| Practice | Why |
|---|---|
| One campaign per vertical | Keeps leads relevant and analytics clean. |
| Add keywords at creation | Powers better discovery queries later. |
| Review leads before sending | Avoid wasting daily caps on low-quality leads. |
| Archive completed campaigns | Keeps the campaign list manageable. |
| Use consistent naming | Easier to find and compare campaigns later. |
Next: Discovery — finding opportunities with AI-powered search.