Build a Weekly Smartlead Client Report from API Data

Use Smartlead date-range campaign analytics for weekly client reports, label source fields and calculated rates, and reconcile CRM outcomes.

A useful weekly client report answers what happened in a defined seven-day window, which campaigns caused the change, and what the team will do next. Smartlead's current API can supply date-range sending and reply counts by campaign. The agency still has to choose the client's campaigns, calculate clearly labeled rates, review reply quality, and add meetings or revenue from a separate verified source.

Smartlead documents a campaign analytics by date range endpoint with an IANA time zone, a 30-day maximum window, and fields for sends, unique first-sequence recipients, replies, non-out-of-office replies, bounces, and unsubscribes. Its client overall stats endpoint provides a client-level snapshot, including positive replies and reported rates, but does not document a date filter. These API pages were checked October 22, 2026. We have not accessed a private Smartlead account or verified a live response.

Jan demonstrated a Smartlead weekly reporting system in a September 17, 2024 video. He combined campaign data by client and period, then argued that showing this week beside the prior week gives the client context. He also noted that leads delivered and commentary were separate fields his team supplied (13:56). That is dated experience with his historical Make/Airtable workflow, not proof that its old code or numbers match today's API. The core design remains useful: show exact windows, source each field, and review the report before sending it.

Define the report contract before calling the API

Choose one client, the exact Smartlead campaign IDs assigned to that client, a reporting time zone, and two complete equal seven-day windows. For example, a Friday review might compare the last fully completed Friday–Thursday with the Friday–Thursday before it. Put those dates and the time zone in the report header. Never mix a partial current day with a complete previous week.

Keep a campaign-to-client register that an account owner reviews when campaigns are created, archived, reassigned, or shared. Smartlead's API exposes client overall stats, but its documented response alone does not establish how to create a dated weekly client aggregate. Sum only the campaign IDs approved for that client's report, and show the included campaign names in an appendix. If assignment is ambiguous, hold that campaign out and flag the gap.

Define the denominator for each rate and keep it consistent. A count of emails sent is not a count of unique people contacted. Smartlead defines unique_sent_count as leads who received a first-sequence email in the date range, while sent_count covers emails sent. Choose whether a reply rate is replies divided by unique first-sequence recipients, replies divided by sent messages, or another documented company convention. Label the formula; do not call it Smartlead's official rate unless you are reproducing Smartlead's documented metric definition exactly.

Pull the dated campaign fields

For each included campaign, request GET /api/v1/campaigns/{campaign_id}/analytics-by-date with start_date, end_date, and time_zone. Smartlead's reference accepts YYYY-MM-DD dates, interprets the bounds as whole days in the selected time zone, defaults to UTC, and rejects a range wider than 30 days. Use a credential stored in your automation's secret manager; never place a real API key in a report, sheet, URL shared with a client, or source repository. The documentation's query-string examples are illustrative, not safe places to publish a key.

The response example returns count values as strings, so parse and validate them before calculation. Retain the raw response or a controlled audit record internally, alongside the retrieval time and campaign ID. Fail closed if a response is unauthorized, missing, malformed, or lacks a field needed for the report. A blank field is not zero.

Field in dated response Safe report meaning
sent_count Emails sent in the selected window.
unique_sent_count Leads who received a first-sequence email in the window. It is not every newly imported lead.
reply_count Replies in the window excluding replies explicitly marked ignored.
total_reply_count All replies received in the window.
non_ooo_reply_count Replies from leads not categorized out of office. It is not a count of positive replies.
bounce_count, unsubscribed_count Bounces and unsubscribes in the window.
open_count, unique_open_count, click_count Tracking events, subject to measurement limits; do not use opens as a purchase or deliverability outcome.

Smartlead says total_count and drafted_count in that same response are campaign-lifetime values, even when the request contains dates. Do not add them into a “this week” column. Its out-of-office explanation says total_reply_count - non_ooo_reply_count is the categorized OOO reply count, and that the split depends on categorization. Review category quality before describing it as a precise human-reply measure.

Calculate the weekly view and label the math

Create one row per campaign and window, then aggregate count fields across the client's approved campaigns. Calculate a rate only after the counts are validated and the denominator is nonzero. For example, if a report chooses non-OOO replies per first-sequence recipient, its calculation is sum(non_ooo_reply_count) / sum(unique_sent_count). That is an agency-defined reporting ratio, not a Smartlead API field or a universal reply-rate definition. If the same person enters more than one campaign, the summed denominator may count that person twice; label it a sum of campaign recipients rather than a distinct client-wide person count.

The client overall stats endpoint can be a cross-check for campaign assignment or high-level context. Its example includes positive_replied, sent, replied, and several rates, but the endpoint documentation does not describe a date-range parameter. Do not subtract two undocumented snapshots and label the result “this week's positive replies” unless you have verified the counters' semantics and reset behavior. If the report needs positive replies during the week, either use a verified date-filtered reply or category source in your account, or leave the number blank with a note. Smartlead's Get Inbox Replies API documents a replyTimeBetween filter and category filtering, but its paginated results require careful event-level deduplication and campaign scope validation; do not mix those event counts with campaign aggregate counts casually.

Report section Source and editorial decision
Sending, replies, bounces, unsubscribes Dated Smartlead campaign response, summed over the approved campaign list.
Agency-defined rate and week-over-week change Calculated from two complete windows; include formula and absolute counts.
Positive conversations Verified categorized reply source plus human review, or explicitly unavailable.
Meetings, opportunities, revenue CRM or booking system with its own source, window, and attribution rule; not inferred from Smartlead replies.
Leads delivered and next actions Account team's operating record and review, clearly separate from API fields.

Review before sharing

A useful client-facing page starts with the two dates, the campaign scope, sends, new first-sequence recipients, replies, bounces, unsubscribes, and the chosen reply ratio. Then explain the largest movement with campaign-level counts. Add a brief qualitative note: which audience or message changed, whether replies were useful, what was paused or fixed, and the one action for next week. Avoid presenting a statistical explanation from a handful of events.

Reconcile the sums with Smartlead's campaign interface for a controlled week before automating delivery. Check that a paused or reassigned campaign appears in the correct client scope, that time zones match, and that reply_count, total_reply_count, and non_ooo_reply_count are not used interchangeably. Keep a human approval step for commentary and downstream CRM numbers. If an API call fails, mark the report incomplete instead of recycling last week's result.

This is a distinct job from Smartlead client access, which lets a client inspect live activity, and Smartlead-to-Make handoff, which routes reply events into a CRM. OutboundXYZ has a commercial relationship with Smartlead; the Smartlead review covers the broader product decision. This guide is based on public API documentation and dated Jan video evidence, with no private report run or measured retention claim.

FAQ

Can the client overall stats endpoint give me last week's positive replies?

The documented endpoint shows positive replies in a client snapshot but no date-range parameter. Do not label it a weekly count without an independently verified date-specific source.

Is unique_sent_count the number of leads imported that week?

No. Smartlead defines it as leads who received a first-sequence email in the requested date range.

Can I add campaign rates and divide by the number of campaigns?

That would weight small and large campaigns equally. Aggregate validated counts and calculate a clearly labeled ratio from the summed numerator and denominator, or show each campaign separately.

Back to blog

The outbound tool memo.

One useful note when a tool is worth testing, skipping, or swapping out of your stack.

Friendly OutboundXYZ mascot waving with an envelope