[API 1.0] Browsing campaigns

Learn how to easily browse and filter campaigns or check campaign stats.

IN THIS ARTICLE:

  1. Browsing campaigns
  2. Filtering campaigns
  3. Browsing campaign stats


Browsing campaigns

To get all campaigns created on your Woodpecker account, use the following request:

GET /rest/v1/campaign_list

Sample response:

[ 
    { 
        "id": 1234567, 
        "name": "The best campaign ever", 
        "status": "COMPLETED", 
        "created": "2019-04-11T13:14:57+0200", 
        "from_name": "Erlich Bachman", 
        "gdpr_unsubscribe": false, 
        "folder_name": "SaaS in America", 
        "folder_id": 1, 
        "from_email": "[email protected]", 
        "per_day": 50, 
        "bcc": "", 
        "cc": "",
        "error": "" 
    } 
]

Response data type:

  • id – number, campaign ID.
  • name – string, campaign name.
  • status – string, campaign status.
  • created – string, campaign creation date.
  • from_name – string, an information who sends this campaign.
  • gdpr_unsubscribe – boolean, indicates whether campaign has GDPR unsubscribe enabled or not.
  • folder_name – string, folder name campaign is assigned to.
  • folder_id – number, folder ID.
  • from_email – string, email account for sending this campaign.
  • per_day – number, number of opening mails sent per day.
  • bcc – string, blind carbon copy assigned to the campaign.
  • cc – string, carbon copy assigned to the campaign.
  • error – string, a message if error occurs.

Note:

  • 0 in folder_ID stands for general UNASSIGNED folder.

Filtering campaigns

You can filter campaigns by their status. As a result you’ll get a basic information about all campaigns in a status you provided. For this, use the following query:

GET /rest/v1/campaign_list?status=COMPLETED

Available statuses:

  • RUNNING
  • DRAFT
  • EDITED
  • PAUSED
  • STOPPED
  • COMPLETED
  • DELETED

Sample response:

[ 
    { 
        "id": 1234567, 
        "name": "The best campaign ever", 
        "status": "COMPLETED", 
        "created": "2019-04-11T13:14:57+0200", 
        "from_name": "Erlich Bachman", 
        "gdpr_unsubscribe": false, 
        "folder_name": "SaaS in America", 
        "folder_id": 1, 
        "from_email": "[email protected]", 
        "per_day": 50, 
        "bcc": "", 
        "cc": "",
        "error": "" 
    }, 
    { 
        "id": 1235678, 
        "name": "Test campaign", 
        "status": "COMPLETED", 
        "created": "2018-04-11T13:14:57+0200", 
        "from_name": "Erlich Bachman", 
        "gdpr_unsubscribe": false, 
        "folder_name": "Old campaigns", 
        "folder_id": 3, 
        "from_email": "[email protected]", 
        "per_day": 50, 
        "bcc": "", 
        "cc": "",
        "error": "" 
    } 
]

Note:

  • Status is a case sensitive parameter. Use caps.
  • You can use multiple values in a query. Separate them with a comma.
GET /rest/v1/campaign_list?status=COMPLETED,RUNNING

Browsing campaign stats

You can get details and stats of a specific campaign by providing it’s ID in a query.

GET /rest/v1/campaign_list?id=7

Sample response:

[ 
    { 
        "id": 1234567, 
        "name": "The best campaign ever", 
        "status": "COMPLETED", 
        "created": "2019-04-11T13:14:57+0200", 
        "from_name": "Erlich Bachman", 
        "gdpr_unsubscribe": false, 
        "folder_name": "SaaS in America", 
        "folder_id": 1, 
        "from_email": "[email protected]", 
        "per_day": 50, 
        "bcc": "", 
        "cc": "",
        "stats": { 
            "interested": 150, 
            "not_interested": 18, 
            "maybe_later": 3, 
            "replied": 171, 
            "autoreplied": 10, 
            "bounced": 3, 
            "check": 0, 
            "clicked": 113, 
            "delivery": 1710, 
            "invalid": 30, 
            "opened": 289, 
            "prospects": 1770, 
            "queue": 27, 
            "sent": 1710, 
            "optout": 0, 
            "emails": [ { 
                "subject": "We're ready to solve your problems.", 
                "msg": "<div>This is HTML message.</div>", 
                "timezone": "Europe/Warsaw", 
                "use_prospect_timezone": null,
                "sunFrom": -1,
                "sunTo": -1, 
                "monFrom": -1, 
                "monTo": -1, 
                "tueFrom": -1,
                "tueTo": -1, 
                "wedFrom": 600, 
                "wedTo": 1080, 
                "thuFrom": 600, 
                "thuTo": 1080, 
                "friFrom": -1, 
                "friTo": -1, 
                "satFrom": -1, 
                "satTo": -1, 
            "sunday": [ { 
                "from": -1, 
                "to": -1 
            } ], 
            "monday": [ { 
                "from": -1, 
                "to": -1
            } ], 
            "tuesday": [ { 
                "from": -1, 
                "to": -1 
            } ], 
            "wednesday": [ {
                "from": 600,
                "to": 1080 
            } ], 
            "thursday": [ {
                "from": 600,
                "to": 1080 
            } ],
            "friday": [ {
                "from": -1, 
                "to": -1 
            } ], 
            "saturday": [ { 
                "from": -1, 
                "to": -1 
            } ],
            "track_open": true, 
            "track_click": false, 
            "attach_follow": true, 
            "follow_up": 0, 
            "condition": { 
                 "type": "OPEN", 
                 "operand": "MORE_THAN", 
                 "value": "2" 
            }, 
            "number": 1,
            "step": 1,
            "emailSend": 40, 
            "toSend": 1050, 
            "delivery": 40, 
            "open_": "60.0%", 
            "open": 24, 
            "reply_": "0.0%", 
            "reply": 0, 
            "invalid_": "0.0%", 
            "invalid": 0, 
            "bounce_": "0.0%", 
            "bounce": 0 
    }, 
    { 
            "subject": "Re: We're ready to solve your problems.", 
            "msg": "<div>This is a follow up. Also in HTML.</div>", 
            "timezone": "Europe/Warsaw",
            "use_prospect_timezone": null, 
            "sunFrom": 0, 
            "sunTo": 0,
            "monFrom": 0, 
            "monTo": 0, 
            "tueFrom": 0, 
            "tueTo": 0,
            "wedFrom": 0,
            "wedTo": 0, 
            "thuFrom": 0, 
            "thuTo": 0,
            "friFrom": 0, 
            "friTo": 0, 
            "satFrom": 0, 
            "satTo": 0, 
            "sunday": [ {
                "from": -1,
                "to": -1
            } ], 
            "monday": [ { 
                "from": -1, 
                "to": -1 
            } ], 
            "tuesday": [ {
                "from": -1, 
                "to": -1 
            } ], 
            "wednesday": [ { 
                "from": 600,
                "to": 1080 
            } ], 
            "thursday": [ { 
                "from": 600, 
                "to": 1080
            } ], 
            "friday": [ {
                "from": -1, 
                "to": -1 
            } ], 
            "saturday": [ {
                "from": -1,
                "to": -1 
            } ], 
            "track_open": true, 
            "attach_follow": true, 
            "follow_up": 3, 
            "condition": null, 
            "number": 2,
            "step": 2,
            "emailSend": 0, 
            "toSend": 1090, 
            "delivery": 0, 
            "reply_": "0.0%", 
            "reply": 0, 
            "invalid_": "0.0%", 
            "invalid": 0, 
            "bounce_": "0.0%", 
            "bounce": 0 
         } ] 
      }, 
        "error": "",
        "timestamp": "2020-01-05T09:47:50+0100"
    } 
]

Response data type:

  • stats – JSON object, detailed campaign stats.
  • interested – number, number of prospects marked as “interested”.
  • not_interested – number, number of prospects marked as “not interested”.
  • maybe_later – number, number of prospects marked as “maybe later”.
  • replied – number, number of prospects who replied.
  • autoreplied – number, number of autoreplies.
  • bounced – number, number of bounces.
  • check – number, number of prospects to check (except manual pause).
  • clicked – number, number of prospects who clicked on a link.
  • delivery – number, number of prospects who received an opening email.
  • invalid – number, number of invalid email addresses.
  • opened – number, number of prospects who opened an email.
  • prospects – number, number of prospects added to the campaign.
  • queue – number, number of emails queued for sending.
  • sent – number, number of emails sent.
  • optout – number, number of unsubscribes.
  • emails – JSON object, email details and stats.
  • subject – string, an email subject.
  • msg – string, an email body.
  • timezone – string, timezone set up for a specific email.
  • use_prospect_timezone – boolean, indicates whether emails are sent according to prospects timezone or not.
  • sunFrom … satFrom – number, number in delivery time settings pointing an hour from which emails are sent on a particular day. Check Note for more information.
  • sunTo … satTo – number, number in delivery time settings pointing to an hour to which emails are sent on a particular day. Check Note for more information.
  • sunday … saturday – JSON object, numbers in delivery time settings pointing an hours during which emails are sent on a particular day. Check Note for more information.
  • track_open – boolean, indicates whether open tracking is enabled for specific email.
  • track_click – boolean, indicates whether click tracking is enabled for specific email.
  • attach_follow – boolean, indicates whether a follow-up will be sent in the same thread.
  • follow_up – number, number of hours or days after which a next step is performed (if no reply). Check Note for more information.
  • condition – JSON object, details of condition following the step it’s mentioned in. (if set up). Check Note for more information.
  • type – string, defines type of condition. Check Notefor more information.
  • operand – string, logical expression. Check Notefor more information.
  • value – string, information indicating the point of condition being fulfilled or not. Check Note for more information.
  • number – number, action number indicating the path in which action will be performed. Check Note for more information.
  • step – number, step number. Check Notefor more information.
  • emailSend – number, number of specific emails sent.
  • toSend – number, number of specific emails waiting to be sent.
  • delivery – number, number of specific emails delivered.
  • open_ – string, open rate for a specific email. Check Note for more information.
  • open – number, opens of a specific email.
  • reply_ – string, reply rate for a specific email.
  • reply – number, replies to a specific email.
  • invalid_ – string, invalid rate for a specific email.
  • invalid – number, number of invalid emails.
  • bounce_ – string, bounce rate of a specific email.
  • bounce – number, number of bounces.
  • timestamp – string, time of generating stats.

Note:

  • Timezone parameter is used, when option “Use prospect timezone” is not marked or prospect’s timezone is undefined.
  • sunFrom … satFrom and sunTo … satTo parameters work only for campaigns created before 18th November 2019 and non IF-campaigns created after this date. Those parameters don’t include different time windows for the same day. Number is calculated by multiplying hour of start by 60 minutes. For example, number 540 means that emails are sent from 9 AM (9*60=540). For IF-campaigns those parameters are set to null.
  • sunday … saturday parameters work for IF-campaigns. They can consist of up to three time windows per one day. Number is calculated by multiplying hour of start by 60 minutes. For example, number 540 means that emails are sent from 9 AM (9*60=540).
  • follow_up number is calculated by multiplying hours by minutes. For example, number 4320 means that this email will be sent after 3 days after the previous step (3*24*60=4320).
  • If condition equals null, it means there’s no condition after this step. Also, a condition before the opening step is not available in API 1.0.
  • type parameter can have one of the following values: OPEN, CLICK or custom field name (e.g. PROSPECT_FIRST_NAME).
  • operand specifies what data is to be operated on. Can have one of the following values: MORE_THAN, EQUALS, CONTAINS.
  • value can vary depending on the condition type and operand used in campaign. It can either be a number (e.g. of opens) or a text.
  • number can help you differentiate in which path is a specific action (YES or NO). It is assigned based on a possibility that after every action in campaign, there’s a condition. So, for example, a simple campaign without a condition will have the following numbers: 1, 2, 4, 8 etc. If you decide to use a condition before opening step, number will start from 2. We know it sounds complicated, so here’s a helpful illustration:

    browse-campaigns image

  • step tells you on which stage of the campaign is a specific email. At this point there could be up to 2 actions (email, manual task) with the same step number. Check the illustration above for further understanding.
  • open_ and other rate parameters show an email performance. It represents a number of actions divided by a number of emails delivered.
  • Currently this endpoint doesn’t provide an information about A/B tests (only about the A version) or manual tasks. This will be added in API 2.0.
  • For getting campaign details you can only use one ID in a query. Providing two or more IDs will result in a basic campaign list, narrowed down to the campaigns with provided IDs.

For any API related feedback feel free to drop us a line at [email protected] .


Want to integrate with us?

If you’re interested in building a native integration with Woodpecker, fill out this form and we’ll get back to you.

Turn knowledge into results

Send follow-ups that make a business thrive