Available tools
Campaign management
createEmailCampaign
Create a Woodpecker email campaign with one email step and minimal configuration.
| Parameter | Type | Description |
|---|---|---|
name | string, optional | Campaign name |
timezone | string | Campaign timezone |
dailyEnroll | integer | Daily prospect enrollment limit |
emailAccountIds | array | SMTP account IDs |
versions | array | Email content versions (max 5) |
deliveryTimes | object | Delivery times |
followupAfter | object, optional | Delay before processing the next step |
createLinkedinProfileVisitCampaign
Create a Woodpecker LinkedIn campaign with one profile visit step.
| Parameter | Type | Description |
|---|---|---|
name | string, optional | Campaign name |
timezone | string | Campaign timezone |
dailyEnroll | integer | Daily prospect enrollment limit |
linkedinAccountId | integer | LinkedIn account ID |
followupAfter | object, optional | Delay before processing the next step |
createLinkedinConnectionRequestCampaign
Create a Woodpecker LinkedIn campaign with one connection request step.
| Parameter | Type | Description |
|---|---|---|
name | string, optional | Campaign name |
timezone | string | Campaign timezone |
dailyEnroll | integer | Daily prospect enrollment limit |
linkedinAccountId | integer | LinkedIn account ID |
bodyVersions | array, optional | Connection request message versions (max 5; empty/null sends the connection request without a message) |
followupAfter | object, optional | Delay before processing the next step |
createLinkedinDirectMessageCampaign
Create a Woodpecker LinkedIn campaign with one direct message step.
| Parameter | Type | Description |
|---|---|---|
name | string, optional | Campaign name |
timezone | string | Campaign timezone |
dailyEnroll | integer | Daily prospect enrollment limit |
linkedinAccountId | integer | LinkedIn account ID |
bodyVersions | array | Direct message content versions (max 5) |
followupAfter | object, optional | Delay before processing the next step |
listCampaigns
Retrieve campaigns with optional status filtering.
| Parameter | Type | Description |
|---|---|---|
pageNumber | integer | Page number (1-based) |
statuses | array | Filter by status (RUNNING, DRAFT, EDITED, PAUSED, STOPPED, COMPLETED) |
retrieveCampaignDetails
Get detailed campaign structure including all steps and configurations.
| Parameter | Type | Description |
|---|---|---|
campaignId | integer | Campaign ID |
retrieveCampaignStatistics
Fetch campaign performance metrics and analytics.
| Parameter | Type | Description |
|---|---|---|
campaignId | integer | Campaign ID |
updateCampaignSettings
Modify campaign-wide settings including name, email accounts, daily limits and timezone.
| Parameter | Type | Description |
|---|---|---|
campaignId | integer | Campaign ID |
name | string, optional | Campaign name |
emailAccountIds | array, optional | List of email account IDs |
timezone | string, optional | Campaign timezone |
dailyEnroll | integer | Daily enrollment limit |
buildCampaignUrl
Generate Woodpecker app URL for campaign access.
| Parameter | Type | Description |
|---|---|---|
campaignId | integer | Campaign ID |
Campaign control
runCampaign(campaignId) - Start campaign execution
pauseCampaign(campaignId) - Pause campaign
stopCampaign(campaignId) - Stop campaign
deleteCampaign(campaignId) - Remove campaign entirely
makeCampaignEditable(campaignId) - Enable campaign modifications
Step management
addEmailStep
Add an email follow-up step to an existing campaign.
| Parameter | Type | Description |
|---|---|---|
campaignId | integer | Campaign ID |
parentId | string | Parent step ID |
versions | array | Email content versions (max 5) |
deliveryTimes | object | Delivery times |
followupAfter | object, optional | Delay before processing the next step |
addLinkedinProfileVisitStep
Add a LinkedIn profile visit follow-up step to an existing campaign.
| Parameter | Type | Description |
|---|---|---|
campaignId | integer | Campaign ID |
parentId | string | Parent step ID |
linkedinAccountId | integer | LinkedIn account ID |
followupAfter | object, optional | Delay before processing the next step |
addLinkedinConnectionRequestStep
Add a LinkedIn connection request follow-up step to an existing campaign.
| Parameter | Type | Description |
|---|---|---|
campaignId | integer | Campaign ID |
parentId | string | Parent step ID |
linkedinAccountId | integer | LinkedIn account ID |
followupAfter | object, optional | Delay before processing the next step |
bodyVersions | array, optional | Connection request message versions (max 5; empty/null sends the connection request without a message) |
addLinkedinDirectMessageStep
Add a LinkedIn direct message follow-up step to an existing campaign.
| Parameter | Type | Description |
|---|---|---|
campaignId | integer | Campaign ID |
parentId | string | Parent step ID |
linkedinAccountId | integer | LinkedIn account ID |
followupAfter | object, optional | Delay before processing the next step |
bodyVersions | array | Direct message content versions (max 5) |
updateCampaignStep
Modify step delivery times and scheduling.
| Parameter | Type | Description |
|---|---|---|
campaignId | integer | Campaign ID |
stepId | string | Step ID |
payload | string | Updated delivery configuration |
updateEmailStepVersion
Update email content, subject lines, signatures and tracking settings.
| Parameter | Type | Description |
|---|---|---|
campaignId | integer | Campaign ID |
stepId | string | Step ID |
versionId | string | Version ID |
subject | string | Email subject |
message | string | Email body (HTML supported) |
signature | string | SENDER or NO_SIGNATURE |
trackOpens | boolean | Enable open tracking |
updateLinkedinStepVersion
Update LinkedIn connection request or direct message content.
| Parameter | Type | Description |
|---|---|---|
campaignId | integer | Campaign ID |
stepId | string | Step ID |
versionId | string | Version ID |
message | string | Email body content |
deleteCampaignStep
Remove steps from campaigns.
| Parameter | Type | Description |
|---|---|---|
campaignId | integer | Campaign ID |
stepId | string | Step ID |
Prospect management
addProspectsToDatabase
Adds new prospects to your global prospect list without enrolling them in any campaign.
| Parameter | Type | Description |
|---|---|---|
prospectsPayload | string | Array of prospect objects |
Notes:
- Prospects are added to your account but not to any campaign
- Available for future campaign enrollment
- Useful for building a prospect database before campaign creation
addProspectsToCampaign
Bulk add prospects with full contact information and custom snippets.
| Parameter | Type | Description |
|---|---|---|
campaignId | integer | Campaign ID |
prospectsPayload | string | Array of prospect objects |
Note: Always check for DUPLICATE prospects in response. Use updateProspectsInCampaign for duplicates if data updates are needed.
updateProspectsInDatabase
Updates existing prospects in your global database or adds new ones if they don't exist.
| Parameter | Type | Description |
|---|---|---|
prospectsPayload | string | Array of prospect objects |
Notes:
- Existing prospects are updated based on email address
- New prospects are added if email doesn't exist
- Only include fields you want to update
- Updates apply globally (affects all campaigns using these prospects)
updateProspectsInCampaign
Update existing prospect data (requires explicit user request).
| Parameter | Type | Description |
|---|---|---|
campaignId | integer | Campaign ID |
prospectsPayload | string | Array of prospect objects |
listProspectsInDatabase
Lists prospects from your global prospect database (not tied to any specific campaign).
| Parameter | Type | Description |
|---|---|---|
pageNumber | integer | Page number (1-based) |
Notes:
- Returns paginated results of all prospects in your account
- These prospects can be added to any campaign
- Useful for managing your overall prospect database
listProspectsInCampaign
Paginated retrieval of campaign prospects.
| Parameter | Type | Description |
|---|---|---|
campaignId | integer | Campaign ID |
pageNumber | integer | Page number (1-based) |
searchProspects
Searches for prospects that match specific criteria across your entire database.
| Parameter | Type | Description |
|---|---|---|
pageNumber | integer | Page number (1-based) |
searchCriteria | object (optional) | JSON object with search parameters |
filterCriteria | object (optional) | JSON object with additional filters |
Available search fields:
email- Email addressfirst_name- First namelast_name- Last namecompany- Company nameorganization_id- Organization IDindustry- Industrywebsite- Website URLtags- Tags (case-sensitive, without leading #)title- Job titlephone- Phone numberaddress- Street addresscity- Citystate- State/Provincecountry- Countrysnippet1throughsnippet15- Custom fields
Available filter fields:
id- Comma-separated list of prospect IDsstatus- Prospect's global status: ACTIVE, BOUNCED, REPLIED, BLACKLIST, INVALIDcampaigns_id- Comma-separated list of campaign IDs that prospects are enrolled incontacted- Whether a prospect has ever been contactedinterested- Interest level: INTERESTED, MAYBE-LATER, NOT-INTERESTED, NOT-MARKED
Notes:
- Tag searching is case-sensitive, don't use leading # when searching by tags
- Search criteria uses OR for same field, AND for different fields
- To filter OPT-OUT prospects, use "BLACKLIST" status
- Multiple filter values are comma-separated
deleteProspects
Permanently deletes prospects from your database and/or specific campaigns.
| Parameter | Type | Description |
|---|---|---|
prospectIds | string | Comma-separated list of prospect IDs to delete |
campaignIds | string (optional) | Comma-separated list of campaign IDs from which to remove prospects |
Notes:
- Without campaignIds: Deletes prospects globally from your entire database
- With campaignIds: Removes prospects only from specified campaigns
- This action is permanent and cannot be undone
- Requires explicit user confirmation before execution
- Use prospect IDs (not email addresses) obtained from list/search operations
Warning: Global deletion removes prospects from all campaigns and your database. Local deletion (with campaignIds) only removes them from specified campaigns while keeping them in your global database.
Account management
listMailboxes
Retrieve available email accounts for campaign assignment.
| Parameter | Type | Description |
|---|---|---|
filter | string | Filter to use when listing mailboxes (SMTP, IMAP, ALL) |
listLinkedinAccounts
Retrieve available LinkedIn accounts for campaign assignment.
| Parameter | Type | Description |
|---|---|---|
filter | string | Filter to use when listing accounts (AVAILABLE_FOR_CAMPAIGN, ALL) |