Juniper Books · Analysis workspace
Holiday email analysis
Send plan
Send and rate sliders
Populate with Juniper Books data
PlannedSend[] { date: string (YYYY-MM-DD), name: string, channel: "email", recipients: number, approximate: boolean, low: number | null, high: number | null, status: "sent" | "projected", note: string } ListrakMessage[] { list: string, messageType: string (broadcast | triggered), channel: string (Email | SMS), campaign: string, name: string, sendDate: string, spanStart: string (YYYY-MM-DD), spanEnd: string (YYYY-MM-DD), revenueCents: number, sends: number, opens: number, clicks: number, uniqueClicks: number, conversions: number, aovCents: number }November, December, and combined totals
Populate with Juniper Books data
PlannedSend[] { date: string (YYYY-MM-DD), name: string, channel: "email", recipients: number, approximate: boolean, low: number | null, high: number | null, status: "sent" | "projected", note: string } ListrakMessage[] { list: string, messageType: string (broadcast | triggered), channel: string (Email | SMS), campaign: string, name: string, sendDate: string, spanStart: string (YYYY-MM-DD), spanEnd: string (YYYY-MM-DD), revenueCents: number, sends: number, opens: number, clicks: number, uniqueClicks: number, conversions: number, aovCents: number }Campaign and flow breakdown
Populate with Juniper Books data
ListrakMessage[] { list: string, messageType: string (broadcast | triggered), channel: string (Email | SMS), campaign: string, name: string, sendDate: string, spanStart: string (YYYY-MM-DD), spanEnd: string (YYYY-MM-DD), revenueCents: number, sends: number, opens: number, clicks: number, uniqueClicks: number, conversions: number, aovCents: number } promoBlastNames: string[] (exact message names counted as campaigns when triggered and at least promoBlastMinSends: number) excludedNameParts: string[] (fragments matched against list, campaign, and message name) welcomeSeriesNames: string[] (exact triggered-message names in the welcome series) primaryListName: string (the main audience list; other lists are the remainder)Daily planned sends table
Populate with Juniper Books data
PlannedSend[] { date: string (YYYY-MM-DD), name: string, channel: "email", recipients: number, approximate: boolean, low: number | null, high: number | null, status: "sent" | "projected", note: string }