Changelog

    Outreach Magic changelog

    We ship often. Here's what landed in each release of the Outreach Magic skill suite, from campaign reporting and lead enrichment to platform integrations and fixes.

    Campaign stats polish

    • Added Daily Breakdown tab to campaign stats sheets. One row per campaign per day with sent, delivered, bounced, replies, OOO vs human, and LinkedIn activity. Same metrics as the overview, split by calendar day. Defaults to EDT (UTC-4), you can change it with a config constant.
    • Renamed 'Manual' to 'Human' across all sheets. Column headers now read OOO vs Human instead of OOO vs Manual. Makes it clearer which replies are real vs auto-generated.
    • Cleaned up tab titles. Removed date-range prefix (e.g. 'Last 14d - Campaign Overview' is now just 'Campaign Overview'). The time window stays in the workbook-level title.
    • Added settings note to cell A1 of every sheet. Includes workspace slug, time window, generation timestamp, and timezone offset so anyone checking the sheet can see what it covers.
    • Frozen header row is now enabled by default on all campaign stats sheets.

    What's new

    • Campaign stats export. Run `sheets campaign-stats` from the outreachmagic pipeline to push workspace-level campaign performance data to a hosted Google Sheet. Three sheets in one workbook: campaign overview with status and bounce rates, conversion funnels per campaign, and lead sentiment distribution.
    • Brand asset pipeline. Logo SVGs for the org now publish to a public repo automatically when they change.

    Platform registry improvements

    • Prosp event mapping now covers send_connection, send_msg, and reply events. If you use Prosp with Outreach Magic, those events get the same treatment as Smartlead and Instantly events in your local relay database.

    Lead enrich fixes

    • batch-check accepts --limit to cap how many people it processes per run. No need to edit config for one-off checks.
    • stamp-attempted always tags leads through the lightweight bulk endpoint. Only touches import-profiles when you pass notes.
    • serper-search writes output to --out-file so you can save results directly instead of piping stdout.

    Docs and site

    • Public READMEs rewritten for the full product suite. The GitHub org profile at github.com/outreachmagic now mirrors the same README.
    • Changelog page added to the site so you can track what changed without opening GitHub.

    Initial release

    • First stable release of the Outreach Magic skill suite. Relay data pull from Smartlead, Instantly, HeyReach, PlusVibe, EmailBison, Prosp, and Calendly. SQLite-backed workspace routing, lead dedup, and campaign stats.
    • Email finder companion skill with fallback provider chain — trykitt, icypeas, serper, millionverifier.
    • Lead enrich companion skill with Serper.dev Google Search integration for contact enrichment.
    • Update mechanism via pipeline.py update. Pulls from GitHub releases, verifies SHA256 hashes, keeps a rollback copy.
    • Install script with platform detection for Hermes, Cursor, Claude Code, and Claude desktop.
    • Companion common module for shared env loading, API key pool rotation, and agent integration.
    • Manifest system: every skill publishes an update-manifest.json with SHA256 hashes. The update command verifies file integrity before applying changes.

    Want to see the full commit history? It's all public.