6 Input Channels That Feed Claude My Whole Business

You opened Claude, got impressed, bookmarked the tab — and now it sits there waiting for you to remember it exists. That's not an AI problem. That's an input problem. Work doesn't originate in the Claude tab; it originates in your inbox, your voice notes, your calendar, spreadsheet rows, Notion edits, and on a schedule that doesn't care if you're awake.
I measured the copy-paste tax on my own week: about two hours a day of context-switching just to feed Claude the thing it needed to help me with. Two hours, every day, gone to being a human API. So I stopped. Below is the exact six-channel input layer I run now — what each one does, the wiring, the realistic numbers, and the order I'd build them in if I started from zero today.
Channel 1 — Email triage (build this first)
Highest leverage by a wide margin. The setup: a webhook watches a Gmail label, every new message hits a Claude triage prompt, and the output gets routed three ways — reply needed, FYI only, or trash. Reply-needed emails get pushed to a Telegram channel with a suggested draft. FYI gets logged to a Notion table. Trash gets archived.
You don't open your inbox to triage anymore. You open it to send the replies Claude already drafted.
For a typical client I onboard, this single channel saves 60–90 minutes per day. Two tooling paths:
- n8n — visual flow, Gmail trigger → HTTP node → Claude → Telegram. ~15 minutes to build.
- Python webhook — ~40 lines, full control, runs anywhere.
# triage_handler.py — the whole thing fits on a screen
import anthropic, requests, os
client = anthropic.Anthropic()
TRIAGE_PROMPT = """Classify this email into one of:
- REPLY: needs a personal response
- FYI: informational, log only
- TRASH: newsletters, automation, noise
If REPLY, draft a 3-sentence response in my voice.
Return JSON: {bucket, draft_or_null, reason}
Email:
{body}
"""
def handle(email):
msg = client.messages.create(
model="claude-sonnet-4-5",
max_tokens=600,
messages=[{"role":"user","content":TRIAGE_PROMPT.format(body=email["body"])}],
)
result = parse_json(msg.content[0].text)
if result["bucket"] == "REPLY":
send_telegram(email, result["draft_or_null"])
elif result["bucket"] == "FYI":
log_notion(email, result["reason"])
else:
gmail_archive(email["id"])
Cost per email at current Sonnet pricing: about $0.002. At 200 emails a day, that's $12/month for the channel that saves an hour and a half daily.
Channel 2 — Voice notes from your phone
The channel everyone underestimates. The actual ideas show up when you're walking, driving, or doing dishes — and a laptop chat window is the worst possible capture surface for them. So flip it.
You record a voice note into a Telegram bot. The bot pipes the audio to Whisper for transcription, then forwards the transcript to Claude with a context prompt that already knows what kind of message it usually is — a task, a client note, a content idea, or a decision to log. Claude responds in the same Telegram thread within about 8 seconds.
# telegram_voice_handler.py
async def on_voice(message):
audio = await message.download()
transcript = openai.audio.transcriptions.create(
model="whisper-1", file=audio
).text
reply = client.messages.create(
model="claude-sonnet-4-5",
max_tokens=400,
system=VOICE_CONTEXT_PROMPT, # knows my projects, clients, tone
messages=[{"role":"user","content":transcript}],
).content[0].text
await message.reply_text(reply)
await log_to_notion(transcript, reply)
I push roughly 40 messages a day through this channel. It's the difference between an idea becoming a Notion page and an idea evaporating somewhere between the shower and the front door.
Whisper costs $0.006/minute. At 40 voice notes averaging 30 seconds, that's $3.60/month.
Channel 3 — Calendar pre-briefs
Every event on your calendar is a future moment where you'll wish you had prep. So pre-brief it.
A scheduled job runs 15 minutes before each meeting, pulls the event title and attendees, cross-references whatever context you have — past Gmail threads, CRM notes, a Notion doc — and asks Claude for a one-paragraph brief on who you're meeting and what they probably want. The brief lands in Telegram before the call.
# n8n cron flow (conceptual)
trigger: every 5 minutes
steps:
- google_calendar.list_events(in_next: 20m, not_briefed: true)
- for_each event:
- gather: gmail.search(from: attendees, limit: 5)
- gather: notion.search(query: attendees)
- claude.message(prompt: BRIEF_PROMPT, context: gathered)
- telegram.send(brief)
- mark_briefed(event.id)
You walk into the meeting already oriented. No prep time, no scrambling through old threads at 9:58. Just the brief.
What a typical brief looks like
- Who: Marko, founder of a Belgrade fintech, met once in March
- Recent context: Asked about invoice automation in our last email (Oct 14)
- Likely agenda: Wants a quote and a timeline for the Fakturko integration
- Watch for: He mentioned budget is tight — lead with phased rollout
Channel 4 — Spreadsheet row enrichment
Most small businesses still run on a Google Sheet — leads, orders, project status, something. When a new row is added, a webhook fires and ships the row to Claude for enrichment.
For a lead sheet, Claude pulls public info, drafts a tailored first-touch message, and writes both back into adjacent columns. By the time you open the sheet in the morning, the new leads already have research and a draft ready to send.
| Per row | Number |
|---|---|
| Claude cost | ~$0.004 |
| Time saved (manual research + drafting) | 5–15 min |
| Latency from row insert to enriched row | ~12 seconds |
// Google Apps Script — onEdit trigger
function onEdit(e) {
const row = e.range.getRow();
if (e.range.getColumn() !== 1) return; // only fire on new name
const lead = readRow(row);
const payload = { name: lead.name, company: lead.company, email: lead.email };
UrlFetchApp.fetch("https://my-webhook.io/enrich", {
method: "post",
contentType: "application/json",
payload: JSON.stringify(payload)
});
}
The webhook does the LinkedIn lookup, sends the bundle to Claude with a research + drafting prompt, then writes columns G–J back via the Sheets API.
Channel 5 — Notion auto-summarization
When a page is created or significantly edited, a webhook ships the content to Claude with a summarizer prompt. Claude writes a three-bullet summary into the top of the page and tags it with the right project from a predefined list.
This sounds small until you have a team or contractors creating docs. Then it's the difference between a knowledge base that's actually searchable and a graveyard of unread pages.
The trick is debouncing. You don't want this firing 40 times while someone is typing. I run a 10-minute quiet window: the webhook queues the page ID, and a worker processes it only if no further edits have arrived in the last 10 minutes.
# notion_summarizer.py
SUMMARY_PROMPT = """Summarize this page in exactly 3 bullets.
Then suggest 1-3 project tags from: {project_list}.
Return JSON: {summary_bullets, tags}.
Page:
{content}
"""
Cost: ~$0.01 per page (pages are longer than emails). On a team producing 20 docs a week, that's $0.80/month for a searchable knowledge base.
Channel 6 — Scheduled cron prompts (the works-while-you-sleep layer)
This is the channel that makes the other five feel passive. Prompts that run on a timer, not in response to anything.
- 06:00 daily — standup based on yesterday's email replies, calendar, and completed Notion tasks. Lands in Telegram.
- 16:00 Fridays — weekly review: what shipped, what slipped, what to defer.
- 20:00 Sundays — drafts the content plan for the coming week from voice notes captured in channel 2.
- 23:00 daily — drafts tomorrow's top-3 priorities based on calendar + open threads.
# crontab on the home server
0 6 * * * /opt/claude/run.sh standup
0 16 * * 5 /opt/claude/run.sh weekly_review
0 20 * * 0 /opt/claude/run.sh content_plan
0 23 * * * /opt/claude/run.sh tomorrow_priorities
I don't trigger these. They trigger themselves. This is the layer that turns Claude from a tool you use into a system that runs.
The whole stack: cost, latency, hours saved
Here's what the six channels actually cost me last month, in one table:
| Channel | Monthly cost | Avg latency | Time saved/day |
|---|---|---|---|
| Email triage | $12.00 | 4s | 60–90 min |
| Voice notes | $3.60 | 8s | 30–45 min |
| Calendar pre-briefs | $0.40 | n/a (pre-scheduled) | 15–20 min |
| Spreadsheet enrichment | $1.20 | 12s | 20–40 min |
| Notion summarization | $0.80 | 30s | 10–15 min |
| Cron prompts | $0.60 | n/a | 30+ min |
| Total | ~$18.60 | — | ~3 hours |
The hosting is a $4 VPS plus an n8n instance on my home server. Telegram is free. Whisper is metered. Claude is metered. Nothing here requires more than a weekend to build if you've shipped a webhook before.
The unlock isn't a smarter prompt. It's removing yourself from the role of human router between your tools and the model.
Why bizflowai.io helps with this
The six-channel input layer is exactly the kind of plumbing I build for clients at bizflowai.io — Gmail triage with Telegram drafts, voice-note pipelines, calendar pre-briefs, sheet enrichment, Notion summarization, and the cron layer that ties it all together. Most clients come in wanting "an AI agent" and leave with these six channels wired into their existing stack, because that's where the hours actually live. The system is the product; Claude is just the brain you bolt onto it.
Frequently asked questions
What is the copy-paste tax in AI workflows?
The copy-paste tax is the time lost manually moving context from where work originates (email, voice notes, calendar, spreadsheets, Notion) into a Claude chat window. Measured on a typical week, it costs about two hours a day of context-switching, acting as a human API between your tools and the AI. It's the main reason most people see poor ROI from Claude despite being impressed by it.
How do I connect Gmail to Claude for automatic email triage?
Set up a webhook that watches a Gmail label or folder and sends each new message to Claude with a triage prompt that classifies it as reply-needed, FYI, or trash. Reply-needed messages get pushed to Telegram with a suggested draft; FYI is logged; trash is archived. You can build this in n8n for a visual flow or a roughly 40-line Python webhook handler. Typical savings: 60–90 minutes per day.
How do I capture voice notes into Claude from my phone?
Record a voice note into a Telegram bot. The bot sends the audio to Whisper for transcription, then forwards the transcript to Claude with a context prompt identifying the message type (task, client note, content idea, or decision). Claude replies in the same Telegram thread in about eight seconds. This captures ideas that occur while walking, driving, or away from a laptop, where chat windows fail as capture surfaces.
Why does pre-briefing calendar meetings with Claude matter?
Every calendar event is a future moment you'll wish you had prep for. A scheduled job running 15 minutes before each meeting pulls the event title and attendees, cross-references past emails, CRM notes, or Notion docs, and asks Claude for a one-paragraph brief on who you're meeting and what they likely want. The brief arrives in Telegram before the call, eliminating scramble time and orienting you instantly.
How do I use Claude to enrich a Google Sheet automatically?
When a new row is added to the sheet, a webhook fires and sends that row's data to Claude for enrichment. For a lead sheet, Claude pulls public info, drafts a tailored first-touch message, and writes both back into adjacent columns. By morning, new leads already have research and a draft ready. Cost is fractions of a cent per row, saving 5–15 minutes of manual research per entry.
Want more like this?
I publish practical AI automation, GenAI engineering, and faceless content workflows on YouTube every week.
Subscribe to bizflowai.io on YouTube — never miss a new tutorial.
Planning an AI automation project or need a second opinion on your architecture?
Connect with me on LinkedIn — Lazar Milicevic, GenAI Engineer & bizflowai.io Founder.
Visit bizflowai.io for our services, case studies, and AI consulting.
Frequently asked questions
What is the copy-paste tax in AI workflows?
The copy-paste tax is the time lost manually moving context from where work originates (email, voice notes, calendar, spreadsheets, Notion) into a Claude chat window. Measured on a typical week, it costs about two hours a day of context-switching, acting as a human API between your tools and the AI. It's the main reason most people see poor ROI from Claude despite being impressed by it.
How do I connect Gmail to Claude for automatic email triage?
Set up a webhook that watches a Gmail label or folder and sends each new message to Claude with a triage prompt that classifies it as reply-needed, FYI, or trash. Reply-needed messages get pushed to Telegram with a suggested draft; FYI is logged; trash is archived. You can build this in n8n for a visual flow or a roughly 40-line Python webhook handler. Typical savings: 60–90 minutes per day.
How do I capture voice notes into Claude from my phone?
Record a voice note into a Telegram bot. The bot sends the audio to Whisper for transcription, then forwards the transcript to Claude with a context prompt identifying the message type (task, client note, content idea, or decision). Claude replies in the same Telegram thread in about eight seconds. This captures ideas that occur while walking, driving, or away from a laptop, where chat windows fail as capture surfaces.
Why does pre-briefing calendar meetings with Claude matter?
Every calendar event is a future moment you'll wish you had prep for. A scheduled job running 15 minutes before each meeting pulls the event title and attendees, cross-references past emails, CRM notes, or Notion docs, and asks Claude for a one-paragraph brief on who you're meeting and what they likely want. The brief arrives in Telegram before the call, eliminating scramble time and orienting you instantly.
How do I use Claude to enrich a Google Sheet automatically?
When a new row is added to the sheet, a webhook fires and sends that row's data to Claude for enrichment. For a lead sheet, Claude pulls public info, drafts a tailored first-touch message, and writes both back into adjacent columns. By morning, new leads already have research and a draft ready. Cost is fractions of a cent per row, saving 5–15 minutes of manual research per entry.