RealTimeTrigger icon
Schedule icon
Switch icon
Fail icon
Script icon
If icon
Exit icon
ChatCompletion icon
Anthropic icon
SlackIncomingWebhook icon
Set icon
Pause icon
MailSend icon
Log icon
GetKeys icon
Loop icon

Sponsorship Inbox Triage that Flags Scam Brand Deals, Prices Offers Against Your Rate Card and Tracks Accepted Deals

Triage creator sponsorship emails, flag malware scams, price offers against your rate card, reply after you decide and track deals.

Categories
AIBusiness

Creators get dozens of brand emails a week: fair offers, lowballs, and fake "sponsorships" that hide malware in password-protected press kits to hijack channels. This flow screens each email, prices real offers against your rate card, sends the reply you choose and keeps a deal tracker.

How it works

  1. new_email (email.RealTimeTrigger, IMAP) starts one run per email in imap_folder; daily (Schedule) runs reminders. Manual runs take an .eml upload.
  2. inspect (scripts.python.Script) checks attachments as bytes (programs, double extensions, password-protected archives with programs inside), free-mail senders, lookalike domains, shortened and download links, and Reply-To mismatches on uploaded emails. A redelivered message is skipped.
  3. read_offer (ai.completion.ChatCompletion) extracts brand, deliverables, budget, rights, due date and requests to download or run anything; the model ignores instructions in the email.
  4. assess compares the sender with the brand's real domain, prices the deliverables with rate_card, and routes (Switch): scam → Slack warning and blocklist; offer → Slack summary and decision (Pause); anything else ends quietly.
  5. compose writes a template reply (accept, counter or decline), reply sends it (email.MailSend), and save_deal (kv.Set) tracks it.
  6. Reminders: due flags deliverables due within 3 days, unpaid invoices and unanswered counters; update (Pause) marks deals delivered, paid or closed.

What you get

  • Scam alerts with reasons, and no reply to scammers.
  • Offers priced against your rate card ("offers 300 USD, your rate 6,100 USD (-95%)").
  • Replies sent only after your decision, and a deal tracker in the KV store.
  • Outputs {{ outputs.verdict }}, {{ outputs.risk_score }} and {{ outputs.deal_key }}.

Who it's for

  • YouTubers, podcasters, newsletter writers and their managers.

Why orchestrate this with Kestra

  • Email trigger, AI, approval form, SMTP and state in one YAML flow with retries and alerts.
  • Email text and attachments are untrusted: they travel as files and base64, never as templates, and are never opened or run.

Prerequisites

  • An IMAP and SMTP mailbox (for Gmail, an app password); set the hosts, ports and folder under variables, with your rate_card, creator_name and reply_from.
  • IMAP login errors show on the trigger in the Triggers tab, not as executions.

Secrets

  • SPONSOR_MAIL_USERNAME and SPONSOR_MAIL_PASSWORD: IMAP and SMTP login, usually the full email address.
  • ANTHROPIC_API_KEY: reads the offers (model in variables.claude_model).
  • SLACK_WEBHOOK_URL: alerts, offer summaries, reminders and failures.

Quick start

  1. Set the variables and secrets.
  2. Execute with mode (SELECT triage or reminders, default triage), an email (FILE, .eml) and dry_run (BOOL, default false) set to true.
  3. Execute again without the dry run, answer in decision, and check the reply and the deal.
  4. Enable new_email and daily.

How to extend

  • Attach your media kit to counter offers, or log deals to a spreadsheet.
  • Add Instagram or TikTok deliverables to the rate card.

Links

See How

New to Kestra?

Use blueprints to kickstart your first workflows.