Files
AutoGPT/docs/integrations/smartlead/campaign.md
Nicholas Tindle c1a1767034 feat(docs): Add block documentation auto-generation system (#11707)
- Add generate_block_docs.py script that introspects block code to
generate markdown
- Support manual content preservation via <!-- MANUAL: --> markers
- Add migrate_block_docs.py to preserve existing manual content from git
HEAD
- Add CI workflow (docs-block-sync.yml) to fail if docs drift from code
- Add Claude PR review workflow (docs-claude-review.yml) for doc changes
- Add manual LLM enhancement workflow (docs-enhance.yml)
- Add GitBook configuration (.gitbook.yaml, SUMMARY.md)
- Fix non-deterministic category ordering (categories is a set)
- Add comprehensive test suite (32 tests)
- Generate docs for 444 blocks with 66 preserved manual sections

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

<!-- Clearly explain the need for these changes: -->

### Changes 🏗️

<!-- Concisely describe all of the changes made in this pull request:
-->

### Checklist 📋

#### For code changes:
- [x] I have clearly listed my changes in the PR description
- [x] I have made a test plan
- [x] I have tested my changes according to the test plan:
  <!-- Put your test plan here: -->
  - [x] Extensively test code generation for the docs pages



<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> Introduces an automated documentation pipeline for blocks and
integrates it into CI.
> 
> - Adds `scripts/generate_block_docs.py` (+ tests) to introspect blocks
and generate `docs/integrations/**`, preserving `<!-- MANUAL: -->`
sections
> - New CI workflows: **docs-block-sync** (fails if docs drift),
**docs-claude-review** (AI review for block/docs PRs), and
**docs-enhance** (optional LLM improvements)
> - Updates existing Claude workflows to use `CLAUDE_CODE_OAUTH_TOKEN`
instead of `ANTHROPIC_API_KEY`
> - Improves numerous block descriptions/typos and links across backend
blocks to standardize docs output
> - Commits initial generated docs including
`docs/integrations/README.md` and many provider/category pages
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
631e53e0f6. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 07:03:19 +00:00

125 lines
4.4 KiB
Markdown

# Smartlead Campaign
<!-- MANUAL: file_description -->
Blocks for managing email outreach campaigns in SmartLead.
<!-- END MANUAL -->
## Add Lead To Campaign
### What it is
Add a lead to a campaign in SmartLead
### How it works
<!-- MANUAL: how_it_works -->
This block adds up to 100 leads to an existing SmartLead campaign using the SmartLead API. Each lead includes contact details and optional custom fields for personalization.
Configure upload settings to control duplicate handling and campaign status. The response includes counts for successful uploads, duplicates, and invalid entries.
<!-- END MANUAL -->
### Inputs
| Input | Description | Type | Required |
|-------|-------------|------|----------|
| campaign_id | The ID of the campaign to add the lead to | int | Yes |
| lead_list | An array of JSON objects, each representing a lead's details. Can hold max 100 leads. | List[LeadInput] | No |
| settings | Settings for lead upload | LeadUploadSettings | No |
### Outputs
| Output | Description | Type |
|--------|-------------|------|
| error | Error message if the lead was not added to the campaign | str |
| campaign_id | The ID of the campaign the lead was added to (passed through) | int |
| upload_count | The number of leads added to the campaign | int |
| already_added_to_campaign | The number of leads that were already added to the campaign | int |
| duplicate_count | The number of emails that were duplicates | int |
| invalid_email_count | The number of emails that were invalidly formatted | int |
| is_lead_limit_exhausted | Whether the lead limit was exhausted | bool |
| lead_import_stopped_count | The number of leads that were not added to the campaign because the lead import was stopped | int |
### Possible use case
<!-- MANUAL: use_case -->
**Lead Import**: Bulk import leads from CRM exports, web forms, or enrichment services.
**Campaign Automation**: Automatically add qualifying leads to outreach campaigns.
**Multi-Source Aggregation**: Consolidate leads from multiple sources into unified campaigns.
<!-- END MANUAL -->
---
## Create Campaign
### What it is
Create a campaign in SmartLead
### How it works
<!-- MANUAL: how_it_works -->
This block creates a new email campaign in SmartLead using the SmartLead API. Provide a campaign name and the block returns the created campaign's ID and metadata.
Use the campaign ID with other SmartLead blocks to add leads, configure sequences, and manage the campaign.
<!-- END MANUAL -->
### Inputs
| Input | Description | Type | Required |
|-------|-------------|------|----------|
| name | The name of the campaign | str | Yes |
### Outputs
| Output | Description | Type |
|--------|-------------|------|
| error | Error message if the search failed | str |
| id | The ID of the created campaign | int |
| name | The name of the created campaign | str |
| created_at | The date and time the campaign was created | str |
### Possible use case
<!-- MANUAL: use_case -->
**Dynamic Campaigns**: Create campaigns programmatically for different products or segments.
**Workflow Automation**: Spin up new outreach campaigns as part of sales or marketing workflows.
**Campaign Templating**: Create campaigns from templates with standardized configurations.
<!-- END MANUAL -->
---
## Save Campaign Sequences
### What it is
Save sequences within a campaign
### How it works
<!-- MANUAL: how_it_works -->
This block saves email sequences to an existing SmartLead campaign. Sequences define the email content, timing, and follow-up structure for the campaign's outreach.
Each sequence includes the email subject, body, and delay settings for automated follow-up emails.
<!-- END MANUAL -->
### Inputs
| Input | Description | Type | Required |
|-------|-------------|------|----------|
| campaign_id | The ID of the campaign to save sequences for | int | Yes |
| sequences | The sequences to save | List[Sequence] | No |
### Outputs
| Output | Description | Type |
|--------|-------------|------|
| error | Error message if the sequences were not saved | str |
| data | Data from the API | Dict[str, Any] \| str |
| message | Message from the API | str |
### Possible use case
<!-- MANUAL: use_case -->
**Email Automation**: Define multi-step email sequences for nurturing leads.
**A/B Testing**: Create variant sequences to test different messaging approaches.
**Campaign Configuration**: Set up complete outreach flows programmatically.
<!-- END MANUAL -->
---