Reports

Generate campaign reports with Woodpecker API 2.0 and enhance your dashboards.

Weronika Wróblewska avatar
Written by Weronika Wróblewska
Updated over a week ago

IN THIS ARTICLE:

Reports give you a detailed information about your campaign performance in a given time period. You can check:

  • general statistics per campaign,

  • number of messages sent on each level in your campaigns,

  • open rate per campaign.


API Key is a part of an API Key and Integrations add-on, click here to learn how to get it on Marketplace »


Types of reports

Depending on the type of data you want to get, use the right endpoint:

  • general statistics per campaign

    POST https://api.woodpecker.co/rest/v2/reports/campaigns

  • number of messages sent on each level in your campaigns

    POST https://api.woodpecker.co/rest/v2/reports/messages

  • open rate per campaign

    POST https://api.woodpecker.co/rest/v2/reports/open_rate


How to make a request for report

First part of generating your report is making the following request:

POST https://api.woodpecker.co/rest/v2/reports/campaigns

with the following request body:

{ 
"from": "YYYY-MM-DD",
"to": "YYYY-MM-DD"
}

where:

  • from - is the beginning of time period you want to generate stats for

  • to - is the end of that time period.

IMPORTANT! You can generate reports only for the last 30 days. Also, bear in mind that we will generate a report for the given dates in relation to the UTC timezone.

As a result, you'll get a hashed number of your report.

{
"hash": "123456789abcdefghijkl9876543210oplkmnadquicaiajdhia"
}

To see the stats, use this hashed number in the following request:

GET https://api.woodpecker.co/rest/v2/reports/{{hash}}


Sample payloads

General statistics per campaign:

{
"status": "READY",
"report": {
"description": "General_statistics_per_campaign_2022-09-15-2022-10-14",
"data": [ {
"id": 1234567,
"name": "The best campaign ever",
"status": "RUNNING",
"sent_from": "[email protected]",
"contacted_prospects": 172,
"bounced": 9,
"bounced_rate": "5.2%",
"opened": 117,
"open_rate": "71.8%",
"clicked": 0,
"opt_out": 0,
"delivered": 163,
"responded": 45,
"response_rate": "27.6%",
"interested": 38,
"maybe_later": 3,
"not_interested": 1
},
{
"id": 1345678,
"name": "SaaS in America",
"status": "COMPLETED",
"sent_from": "[email protected]",
"contacted_prospects": 227,
"bounced": 10,
"bounced_rate": "4.4%",
"opened": 163,
"open_rate": "75.1%",
"clicked": 0,
"opt_out": 0,
"delivered": 217,
"responded": 43,
"response_rate": "19.8%",
"interested": 33,
"maybe_later": 4,
"not_interested": 1
} ]
}
}

Response data type:

  • status - string, indicates whether your report is ready. Other statuses: FAILED, WAITING, PENDING, IN_PROGRESS.

  • report - a JSON object, contains information about the report.

  • description - string, shows type of the report and chosen time period.

  • data - a JSON object, contains detailed stats.

  • id - number, campaign ID.

  • name - string, campaign name.

  • status - string, campaign status.

  • sent_from - string, an email campaign was sent from.

  • sent - number, number of emails sent from this campaign.

  • bounced - number, number of bounces.

  • bounced_rate - string, bounce rate.

  • opened - number, number of opens.

  • open_rate - string, open rate.

  • clicked - number, number of clicks.

  • opt_out - number, number of unsubscribes.

  • delivered - number, number of emails delivered.

  • responded - number, number of responses.

  • response_rate - string, response rate.

  • interested - number, number of interested prospects.

  • maybe_later - number, number of prospects that may be interested in your offer.

  • not_interested - number, number of not interested prospects.

Number of messages sent on each level in your campaigns:

{
"status": "READY",
"report": {
"description": "Number_of_messages_sent_from_each_level_in_campaigns_2022-09-15-2022-10-14",
"data": [ {
"id": 1234567,
"name": "The best campaign ever",
"sent_date": "2022-10-05",
"path": "",
"step": 1,
"version": "A",
"sent": "10"
},
{
"id": 1234567,
"name": "The best campaign ever",
"sent_date": "2022-10-07",
"path": "",
"step": 1,
"version": "B",
"sent": "13"
},
{
"id": 1345678,
"name": "SaaS in America",
"sent_date": "2022-10-05",
"path": "Path YES",
"step": 1,
"version": "A",
"sent": "22"

} ]
}
}

Response data type:

  • status - string, indicates whether your report is ready. Other statuses: FAILED, WAITING, PENDING, IN_PROGRESS.

  • report - a JSON object, contains information about the report.

  • description - string, shows type of the report and chosen time period.

  • data - a JSON object, contains detailed stats.

  • id - number, campaign ID.

  • name - string, campaign name.

  • sent_date - string, a date of sending emails from a specific step.

  • path - string, indicates from which path the emails were sent. Check Note for more information.

  • step - number, number of step a message was sent from.

  • version - string, email version. Check Note for more information.

  • sent - number, number of described emails sent on a given date.

Note:

  • Path parameter indicates whether your email was sent after fulfilling (or not) a condition:

    • empty parameter "" - means that there's no condition in this campaign,

    • PATH YES - means that condition was fulfilled for that prospect and this email was sent from the dedicated path,

    • PATH NO - means that condition wasn't fulfilled for that prospect and this email was sent from the dedicated path,,

    • PATH YES/NO - means that condition is added after a different step in this campaign.

  • Version parameter is specifically helpful when you use A/B tests in your campaign. If you don't, the only version you'll see in your stats will be version A.

  • Data is sort in the following order: campaign ID, sent date, step, version.

Open rate per campaign:

{
"status": "READY",
"report": {
"description": "Open_rate_per_campaign_2022-09-15-2022-10-14",
"data": [ {
"id": 1234567,
"name": "The best campaign ever",
"sent_date": "2022-10-05",
"sent_from": "[email protected]",
"path": "",
"step": 1,
"version": "A",
"sent": 10,
"delivered": 10,
"opened": 8,
"open_rate": "80.0%"
},
{
"id": 1234567,
"name": "The best campaign ever",
"sent_date": "2022-10-06",
"sent_from": "[email protected]",
"path": "",
"step": 1,
"version": "A",
"sent": 21,
"delivered": 21,
"opened": 11,
"open_rate": "52.4%"
},
{
"id": 1345678,
"name": "SaaS in America",
"sent_date": "2022-09-15",
"sent_from": "[email protected]",
"path": "Path YES/NO",
"step": 1,
"version": "A",
"sent": 12,
"delivered": 12,
"opened": 5,
"open_rate": "41.7%"
} ]
}
}

Response data type:

  • status - string, indicates whether your report is ready. Other statuses: FAILED, WAITING, PENDING, IN_PROGRESS.

  • report - a JSON object, contains information about the report.

  • description - string, shows type of the report and chosen time period.

  • data - a JSON object, contains detailed stats.

  • id - number, campaign ID.

  • name - string, campaign name.

  • sent_date - string, a date of sending emails from a specific step.

  • path - string, indicates from which path the emails were sent. Check Note for more information.

  • step - number, number of step a message was sent from.

  • version - string, email version. Check Note for more information.

  • sent - number, number of described emails sent on a given date.

  • delivered - number, number of messages delivered on a given date from a specific step.

  • opened - number of emails opened on a given date from a specific step.

  • open_rate - open rate for a specific step on a given date.

Note:

  • Data is sort in the following order: campaign ID, sent date, step, version.

Did this answer your question?