4 ready-to-build workflows

AI agent workflows for Everyday life & family admin

The fridge calendar, the 11pm school-group message, the renewal you only remember when the SMS arrives — turned into one household assistant that reminds, drafts and files, with your approval on anything that spends money or sends a document.

Each recipe below is expressed only in VegaDūta's real workflow building blocks — Trigger, Agent, Knowledge, Condition, Approval, Output, Tool (MCP), Voice, Device, Loop, Code and Parallel — so it maps 1:1 to something you can assemble in the Workflow designer. Consequential actions always pass a human Approval step.

1. Every bill in one place, chased before the late fee — not after

Electricity, water, broadband, the phone, the maintenance, two EMIs and a credit card. Some arrive by email, some by SMS, some as a WhatsApp forward from the society group. Due dates live on a fridge calendar in three different handwritings, and you find out one was missed when the late fee shows up on the next statement.

Trigger: Email / SMS / WhatsApp (a bill or reminder arrives)

How the workflow runs

  1. Trigger

    The bill lands, wherever it lands. An Email trigger on the household inbox, an SMS trigger on the number the billers use, and a WhatsApp trigger for forwards all feed the same workflow — the point is that you stop having to notice.

  2. Agent

    Read it into fields. An Agent node pulls out biller, account/consumer number, amount, due date and billing period into structured fields. If the amount or due date isn't clearly stated, it says so instead of guessing — a guessed due date is worse than no due date.

  3. Tool (MCP)

    Your own urgency rule. A user-defined tool (a SpEL expression you write once) turns days-to-due into your household's own label — not a vendor's idea of 'urgent'. It's a formula over the input JSON: no code, no loops, nothing it can do beyond compute that label.

  4. Condition

    Urgent, soon or later?. A Condition node branches on that label: URGENT goes out now on WhatsApp and, if you want, a Voice call; SOON joins the weekly digest; LATER is just filed.

  5. Approval

    You approve before a rupee moves. An Approval node holds any payment. The workflow can prepare a Razorpay UPI payment request with the amount and biller filled in — but it is your tap that pays it, every single time, including on recurring bills.

  6. Output

    Reminder out, bill filed. An Output node sends the reminder on WhatsApp (and Email for the record), and the bill itself is filed into your household Knowledge base so 'what did we pay for electricity in May?' is a question you can just ask.

Channels & connectors

  • Email
  • SMS/Twilio
  • WhatsApp
  • Voice/Call
  • Razorpay (UPI)
  • Approval / HITL
  • Knowledge base
  • Tool (MCP → biller or bank portal, if you have one)

Outcome

Every bill that arrives on any channel ends up in one dated list, with a reminder that fires on your own definition of 'urgent' and a payment you approve with one tap.

Why it helps

The mechanism is simple: the miss happens because bills arrive on four channels and the calendar only captures the ones somebody remembered to write down. Catching all four channels into one structured list removes the step that actually fails — noticing — while the Approval node keeps every payment a deliberate human act.

Build spec

1 agent1 bill-reading agent. The urgency rule is a user-defined SpEL tool, and the branching, the payment approval and the filing are workflow nodes — not extra agents.

System prompt (paste-ready)

You are a household bill assistant for {{family}}. From an incoming message (email, SMS or a forwarded WhatsApp), extract {biller, account_ref, amount, currency, due_date, billing_period, channel}. Use ONLY what the message actually says — if the amount or due date is not clearly stated, return that field as null and set needs_check=true with a one-line reason. NEVER estimate a due date from a previous bill and never round an amount. You do not pay anything and you do not confirm anything as paid: you only prepare a reminder and a draft payment for a human to approve. Write reminders in plain, warm language, in the household's preferred language, with the biller, the amount and the date — no lectures, no urgency theatre beyond the label the workflow gives you.

Agent roles & model tiers

  • Bill reader (per message) Economy tier — this runs on every bill, SMS and forward the household receives, so its per-call cost is the only cost that scales

    Extract the bill fields into strict JSON. Null for anything not explicitly stated, needs_check=true with a reason. No estimating, no rounding, no inferring from history.
  • Weekly digest writer (once a week) Standard tier — runs once per week over the whole list, so a better model here is nearly free

    Write one short weekly household digest from the filed bills: what is due this week with dates and amounts, what was paid, and anything flagged needs_check. Use only the filed records; never invent a bill and never state something was paid unless the record says so.

MCP connectors

  • Your bank or biller portal, if you use one — via a Tool (MCP) node (no first-party connector; nothing is read or written there without your approval)
  • Email / SMS / WhatsApp — the channels the bills actually arrive on

Built-in tools

  • user-defined tool `bill_urgency` (SpEL): input.daysToDue <= 2 ? 'URGENT' : (input.daysToDue <= 7 ? 'SOON' : 'LATER') — you set the thresholds yourself, so 'urgent' means what it means in YOUR house; it is a pure formula over the input JSON, with no method calls, no loops and no way to reach anything else
  • user-defined tool `share_per_head` (SpEL): input.amount / (input.householdSize == 0 ? 1 : input.householdSize) — for shared flats and joint families, the split is computed the same way every time instead of being argued about
  • knowledge_search (your own filed bills — 'what was the maintenance last quarter?')
  • send_email (the archive copy of each reminder, so there's a record outside chat)

Guardrails

  • No payment is ever made by the agent. A Razorpay UPI request can be prepared with the biller and amount pre-filled, but it passes the Approval node and needs your tap — recurring bills included, every time
  • Nothing is inferred: a missing amount or due date is returned as null with needs_check=true, never estimated from last month's bill
  • Your bills, account numbers and payment history stay in your own tenant's Knowledge base. Nothing is forwarded to a relative, an accountant or any third party without an Approval step
  • Idempotent per (biller, billing_period) — the same bill arriving by both email and SMS produces one entry and one reminder, not two

Cost strategy

Cost tracks message volume, not household size. The reader runs on every incoming bill/SMS/forward, so it sits on the economy tier with a hard token cap and a fallback model configured — if the primary is unavailable the reminder still goes out, which matters more here than prose quality. The one standard-tier call per week is the digest. Reminder sends are channel cost, not model cost: keep the routine ones on WhatsApp/SMS and reserve the Voice call for the URGENT branch only.

Output & delivery

Each bill becomes a structured record filed in your household Knowledge base; the `bill_urgency` SpEL tool labels it, the Condition node routes URGENT to an immediate WhatsApp (and optional Voice call) while SOON joins the weekly digest; any payment is a Razorpay UPI request that waits at the Approval node for your tap, and an Email copy of every reminder gives you a record outside chat.

2. Renewals you find out about a month early, not two days late

The insurance renewal SMS arrives 48 hours before expiry. The car's PUC, the driving licence, the passport, the fridge's extended warranty, the domain name, the society's NOC — each has its own date and its own piece of paper, and the only alarm system is an SMS from whoever happens to send one. Twice you've paid a penalty for something you'd have happily renewed a month earlier.

Trigger: Webhook (scheduled monthly sweep of your own document folder)

How the workflow runs

  1. Trigger

    Monthly sweep. A scheduled Webhook trigger kicks off a sweep across the documents you've filed — policies, licences, warranties, agreements. Nothing external is polled; it reads your own Knowledge base.

  2. Knowledge

    Your own paperwork, indexed. A Knowledge node holds the documents you've already photographed or forwarded in: policy PDFs, the RC book, the rent agreement, warranty cards. This is your household's file drawer, in your own tenant.

  3. Loop

    One pass per document. A Loop node runs a cheap agent once per document to pull out the expiry date and what renewing actually involves. Twenty documents cost twenty small calls, not one enormous one.

  4. Tool (MCP)

    Your own lead time. A user-defined SpEL tool converts days-to-expiry into your household's own window. A passport wants ninety days of warning; a PUC wants seven. You write that rule once as a formula — no developer, and nothing the tool can do beyond return a label.

  5. Condition

    Anything inside its window?. A Condition node keeps quiet about everything that isn't due — the whole value is that this is silent eleven months of the year and loud in the right week.

  6. Agent

    What renewing actually takes. An Agent node drafts the practical bit: which documents you'll need to hand, roughly what it costs based on the last renewal you filed, and where you did it last time. It states what your records say — it does not invent a fee or a government procedure.

  7. Approval

    You approve anything binding. An Approval node gates any payment (Razorpay UPI) and any submission or sharing of a document to a portal or an agent. The reminder is free to send; the commitment is yours.

  8. Output

    One calm message. An Output node sends a single WhatsApp with everything coming up in the window and the checklist for each — not eight separate pings.

Channels & connectors

  • Webhook (scheduled)
  • WhatsApp
  • Email
  • Knowledge base
  • Razorpay (UPI)
  • Approval / HITL
  • Tool (MCP → an insurer or government portal, if you use one)

Outcome

A quiet monthly sweep that produces nothing at all until something genuinely needs doing, then hands you the date, the checklist and a one-tap payment you approve.

Why it helps

The failure mode isn't laziness, it's that the reminder is owned by the counterparty and they send it when it suits them. Moving the clock to your own filed documents means the warning window is one you chose — and because the sweep reads only your own records, the reminder can't quietly stop arriving because a marketing list changed.

Build spec

2 agents1 cheap extractor (runs once per document via the Loop node) + 1 writer that composes the single monthly message. The lead-time rule is a user-defined SpEL tool; the branch, the approval and the payment request are workflow nodes. · Pattern: Map-reduce: Loop over your filed documents (map) → one composed reminder (reduce) → human approves anything binding

System prompt (paste-ready)

(Extractor) Read ONE household document and return strict JSON {doc_type, holder, identifier, expiry_date, issuing_body, renewal_notes, source_file}. Take every value from the document itself — if the expiry date is not printed on it, return null and set needs_check=true. NEVER infer an expiry from a typical validity period ('passports are ten years'), and never state a fee or a procedure that is not written in the document or in a previously filed renewal receipt. You are indexing paperwork, not advising on it.

Agent roles & model tiers

  • Document extractor (per document, in a Loop) Economy tier — it runs across the whole folder every month, so this is the single dominant cost lever

    Extract {doc_type, holder, identifier, expiry_date, issuing_body, renewal_notes} from ONE document as strict JSON. Null + needs_check=true for anything not printed on the document. No inferred validity periods, no invented fees.
  • Reminder writer (once per sweep) Standard tier — one call a month, so this is where the reasoning budget goes

    Compose ONE warm, short message covering only the documents inside their reminder window: what expires, when, what you'll need to renew it, and what it cost last time according to the filed receipt. Say 'per your filed receipt' when quoting a past amount. If a document was flagged needs_check, list it plainly as 'we couldn't read the expiry — worth a look' rather than skipping it.

MCP connectors

  • An insurer / RTO / municipal portal, if you use one — via a Tool (MCP) node (no first-party connector), and read-only unless an Approval says otherwise
  • WhatsApp / Email — the reminder channel

Built-in tools

  • user-defined tool `renewal_window` (SpEL): input.daysToExpiry <= input.leadDays ? 'DUE' : (input.daysToExpiry <= input.leadDays + 30 ? 'APPROACHING' : 'QUIET') — the lead time is per document type and set by you, so a passport can shout ninety days out while a PUC waits until seven
  • knowledge_search (your own filed policies, licences, warranties and past renewal receipts)
  • http_request (only ever behind an Approval node, to submit or fetch from a portal you've explicitly connected)

Guardrails

  • The agent reminds; it never renews. Every payment (Razorpay UPI) and every submission or document upload to a portal passes the Approval node first
  • Expiry dates come from the document, not from general knowledge about how long that document usually lasts — unreadable means needs_check, never a guess
  • Costs and procedures are quoted only from your own filed receipts, always attributed ('per your filed receipt'), never asserted as the current official fee
  • Your policies, licences and identity documents stay in your own tenant. Nothing is shared with an agent, a broker or a relative without an Approval step

Cost strategy

Linear and tiny: N documents × one economy-tier extraction + ONE standard-tier compose, once a month. Because the extractor runs across the whole folder, keep it on the economy tier with a strict token cap and a fallback model — a reminder that arrives in plainer prose beats one that doesn't arrive. If the folder is large, run the map in Parallel batches: same per-document cost, finishes sooner.

Output & delivery

The Loop maps the cheap extractor over your filed documents → the `renewal_window` SpEL tool labels each one against YOUR lead time → the Condition node drops everything QUIET → the writer composes a single WhatsApp listing what's due, the checklist and the last known cost → any payment or portal submission waits at the Approval node for you.

3. The school WhatsApp group, read for you (and only the parts that need you)

Two hundred messages a day in the class group. Somewhere in there: a consent form due Friday, a fee reminder, a change of uniform for sports day, and one genuinely important note from the class teacher — usually posted at 11pm and buried by breakfast under photographs and forwarded good-morning images. You either read all of it or miss something that mattered.

Trigger: WhatsApp / Telegram (school or class group messages)

How the workflow runs

  1. Trigger

    Group messages arrive. A WhatsApp (or Telegram) trigger takes the group's messages as they come. Nothing is posted back to the group — this workflow reads on your behalf and speaks only to you.

  2. Agent

    Is there an action in here?. A cheap Agent node classifies each message: ACTION (something you must do, by a date), INFO (worth knowing, no action), or NOISE. Photos, greetings and thank-you chains are noise, and it says so without editorialising.

  3. Condition

    Anything actionable?. A Condition node drops NOISE entirely and holds INFO for the evening digest. Only ACTION items go further — that is the entire point.

  4. Agent

    Turn it into a task. A second Agent node turns each ACTION into {what, for which child, by when, what you need to bring or sign, how much it costs} — quoting the group message rather than paraphrasing away the details.

  5. Tool (MCP)

    Your own 'is this urgent' rule. A user-defined SpEL tool labels each task from days-to-deadline plus whether money or a signature is involved, using your own thresholds. A formula over the input JSON — nothing more, by construction.

  6. Approval

    You approve anything that leaves the house. An Approval node gates paying a fee (Razorpay UPI), submitting a form, or replying to the school. A draft reply can be written for you; sending it is your decision.

  7. Output

    One evening digest, one morning nudge. An Output node sends a short digest each evening and a nudge on the morning of anything due — on WhatsApp direct to you, not to the group.

Channels & connectors

  • WhatsApp
  • Telegram
  • Email
  • Razorpay (UPI)
  • Approval / HITL
  • Knowledge base
  • Sarvam (Indian languages)
  • Tool (MCP → school portal, if the school has one)

Outcome

You stop reading two hundred messages and start reading a five-line evening digest, with a nudge on the morning of anything due and a one-tap approval for fees and forms.

Why it helps

The mechanism is filtering with a memory: classification alone would just be a smarter notification, but keeping the extracted tasks in your own Knowledge base means Friday's 'did we sign that?' is answerable. Because sending anything back to the school passes an Approval, the agent can be aggressive about reading and still incapable of embarrassing you in the group.

Build spec

2 agents1 economy-tier classifier on every message + 1 task extractor that runs only on messages classified ACTION. The digest, the urgency label and the approval are nodes and a SpEL tool, not agents. · Pattern: Cheap filter → expensive extraction only on what survived the filter

System prompt (paste-ready)

(Classifier) Classify ONE school-group message as ACTION, INFO or NOISE. ACTION means a parent must DO something by a date — sign, pay, send, attend, bring. INFO is worth knowing but requires nothing. NOISE is greetings, photos, thanks, forwards. Return {class, confidence, child_hint}. When you are unsure between ACTION and INFO, choose ACTION — a false alarm costs a glance, a missed consent form costs a school trip. Never summarise away a date, an amount or a child's name. You never reply to the group.

Agent roles & model tiers

  • Message classifier (every message) Economy tier — this is the highest-volume call in the whole guide, running on hundreds of messages a day; nothing else affects the bill as much

    ACTION / INFO / NOISE plus confidence, in strict JSON. When torn between ACTION and INFO, pick ACTION. Never drop a date, an amount or a name.
  • Task extractor (only on ACTION) Standard tier — a small fraction of messages reach it, so the better model is affordable here

    Turn one ACTION message into {task, child, due_date, requires (signature|payment|item|attendance), amount, quoted_text}. Quote the original line for anything factual. If the deadline is vague ('by next week'), keep it vague and say so — never invent a specific date.

MCP connectors

  • School portal / fee portal, if the school runs one — via a Tool (MCP) node (no first-party connector), and only ever written to after an Approval
  • WhatsApp / Telegram — where the group actually lives

Built-in tools

  • user-defined tool `school_task_priority` (SpEL): (input.requiresPayment or input.requiresSignature) and input.daysToDue <= 2 ? 'TONIGHT' : (input.daysToDue <= 1 ? 'TONIGHT' : (input.daysToDue <= 5 ? 'THIS_WEEK' : 'LATER')) — money and signatures get pulled forward because those are the ones that can't be fixed the next morning; you set the numbers
  • knowledge_search (your own extracted school tasks — 'did we already pay the annual day fee?')
  • send_email (the weekly copy to the second parent, so it isn't one person's job to remember)

Guardrails

  • The workflow never posts to the school group or replies to a teacher on its own. Replies are drafted; sending passes the Approval node
  • Fees are never paid automatically — a Razorpay UPI request is prepared and waits for your tap
  • Dates and amounts are quoted from the original message, never paraphrased or inferred; a vague deadline stays vague and is flagged as vague
  • Group content and your children's names stay in your own tenant's Knowledge base. Nothing is forwarded outside the family without an Approval step
  • Bias the classifier toward ACTION on low confidence — the cost of a false alarm is a glance; the cost of a miss is a child left out

Cost strategy

This is the clearest cost-routing case in the pack: hundreds of messages a day hit the classifier, and perhaps five a week reach the extractor. Put the classifier on the economy tier with a hard per-message cap and a fallback model; put the extractor on the standard tier. Getting that split right is worth more than any prompt tuning. Digests are one message a day on a channel you already pay nothing extra for. Sarvam handles the group's mixed-language messages so a Hinglish note about a consent form doesn't slip through as noise.

Output & delivery

Every message is classified cheaply → NOISE is dropped, INFO waits for the digest, ACTION goes to the extractor → the `school_task_priority` SpEL tool ranks the tasks by YOUR thresholds → an evening WhatsApp digest and a morning-of nudge go to you (never to the group) → fees and form submissions wait at the Approval node, with a weekly Email copy to the second parent.

4. Ask the drawer: 'where is the rent agreement?' answered in ten seconds

The rent agreement is a photo somewhere in April's gallery. The car's RC is in a plastic folder in the almirah, unless it's in the car. Someone asks for a copy of a document at the worst possible moment — a bank, a school, a landlord — and you spend twenty minutes scrolling through your own photographs, then send it on WhatsApp and forget you ever did.

Trigger: WhatsApp (send it a photo, or ask it a question)

How the workflow runs

  1. Trigger

    Photograph it once. A WhatsApp trigger takes a photo of any document — agreement, RC, warranty card, receipt, certificate. Sending it is the whole filing effort.

  2. Agent

    Name it and date it. An Agent node reads the document, gives it a sensible name, pulls out the identifiers and dates it carries, and writes a one-line description of what it actually is.

  3. Knowledge

    Into your own drawer. A Knowledge node stores it in your tenant's household knowledge base — searchable by what it is, not by which month you happened to photograph it.

  4. Condition

    Sensitive?. A Condition node marks documents carrying identity or financial numbers so that anything involving them later takes the stricter path.

  5. Agent

    Answer questions about the drawer. When you ask 'when does the rent agreement end?' or 'what's the chassis number?', an Agent node answers from the filed documents with knowledge_search, and cites which document it read. If it isn't in the drawer, it says it isn't in the drawer.

  6. Approval

    Sharing needs a yes. An Approval node gates every outbound copy. The agent will prepare the message with the right document attached and the right recipient — you approve the send, and the approval is recorded so you know later who got what.

  7. Output

    Send, and remember sending. An Output node delivers on WhatsApp or Email, and logs the share against the document so 'did we already send this to the bank?' has an answer.

Channels & connectors

  • WhatsApp
  • Email
  • Knowledge base
  • Approval / HITL
  • Telegram
  • Sarvam (Indian languages)

Outcome

Every household document is one question away, and every copy that leaves the house is one you approved and can look up later.

Why it helps

Search is the small half of this. The bigger mechanism is the share log: the reason document chaos is stressful isn't finding things, it's not knowing where copies of your identity documents have already been sent. Routing every outbound copy through an Approval node makes that list exist as a side effect of using it.

Build spec

2 agents1 filing agent (runs when you send a photo) + 1 retrieval agent (runs when you ask a question). Sharing is an Approval node, not an agent decision. · Pattern: File-on-ingest, answer-on-ask — two small agents over one Knowledge base

System prompt (paste-ready)

(Filing) You file household documents. From a photograph, return {suggested_name, doc_type, parties, identifiers[], issue_date, expiry_date, one_line_description, sensitivity (NORMAL|IDENTITY|FINANCIAL)}. Read only what is visible — if the photo is cut off or blurred, say which field you could not read rather than filling it in. Mark sensitivity IDENTITY or FINANCIAL whenever the document carries a government identifier, an account number or a card number. You never send this document anywhere; you only file it.

Agent roles & model tiers

  • Filing agent (per document) Economy tier — short, structured extraction, and it runs every time a family member photographs something

    Extract the filing fields as strict JSON, marking sensitivity. Unreadable fields are named as unreadable, never filled in. No sending, no sharing.
  • Retrieval agent (per question) Standard tier — it must be careful about saying 'I don't have that', which is the answer that actually protects you

    Answer household questions using knowledge_search over the filed documents ONLY. Always cite which document you read. If the answer is not in a filed document, say plainly that it isn't filed — never answer from general knowledge about how such documents usually work.

MCP connectors

  • A government or bank document store, if you use one — via a Tool (MCP) node (no first-party connector); read-only, and any pull is initiated by you
  • WhatsApp / Telegram — how documents come in and questions get asked

Built-in tools

  • user-defined tool `share_risk` (SpEL): input.sensitivity == 'IDENTITY' or input.sensitivity == 'FINANCIAL' ? 'STRICT_APPROVAL' : 'NORMAL_APPROVAL' — your own rule for which documents need the slower, more explicit confirmation before they leave the house
  • knowledge_search (the household drawer — the one tool this recipe lives on)
  • send_email (approved copies, with the share logged against the document)

Guardrails

  • No document leaves your tenant without passing the Approval node, and documents marked IDENTITY or FINANCIAL take the stricter approval path via the `share_risk` rule
  • Every approved share is logged against the document — recipient, channel, date — so you can always answer 'who has a copy of this?'
  • The retrieval agent answers only from filed documents and cites them; when something isn't filed it says so instead of reasoning from what such a document usually contains
  • Unreadable fields in a photograph are reported as unreadable, never inferred — a wrong identifier confidently filed is worse than a gap

Cost strategy

Both agents are single-call and event-driven, so there is no batch multiplier — cost tracks how much your household actually files and asks. Keep the filing agent on the economy tier (it is the higher-volume of the two and the task is structured extraction) and the retrieval agent on the standard tier, because the valuable behaviour there is a careful 'that isn't filed', which weaker models are worse at. Configure a fallback model on retrieval so a question during a bank visit still gets answered.

Output & delivery

A photographed document is named, dated, classified for sensitivity and filed into your household Knowledge base; questions are answered from those filed documents with a citation; any outbound copy is drafted with the right attachment and recipient and waits at the Approval node — stricter for identity and financial documents — with every approved share logged back against the document.

Related industries

Build one of these in minutes

The sandbox gives you a live agent workspace — no account, no card. Or head back to the full catalogue and compare patterns across every industry.

See how VegaDūta compares to n8n, Dify and BotpressWhy VegaDūta's architectureEstimate your WhatsApp API costs