OpenAIWorkflows

· Intermediate

Reported, not yet confirmed.

Check every draft invoice was actually sent, every morning

Sunnyvale's daily scheduled prompt marks Google Sheets rows Sent only after QuickBooks shows a real send.

Sunnyvale describes a daily scheduled prompt that closes the loop on invoices a human still has to send. Every morning it opens each tracker row, looks up the invoice in QuickBooks, and writes Sent in the status column only when sending evidence is there. The claim is self-reported. That article does not name the host app. We attribute ChatGPT from the author's Oct 8 stack note on the same invoice tracker, which says "Every night, ChatGPT pulls our completed orders" and "Another scheduled prompt writes the name of the sent invoices." The series opener names ChatGPT only for its first example, a weekly NDA job, so it does not by itself show this check runs on ChatGPT.

What it replaces#

Before: a person walks the tracker, opens QuickBooks, and marks rows by hand. After: the morning pass updates confirmed rows itself and leaves a short list of what it could not resolve.

The nightly half of the stack (Oct 8: ChatGPT drafts invoices from completed orders) marks rows Created. The morning job answers a different question: did that draft actually get sent? Having an invoice number in the row is not enough.

How it works#

Sunnyvale's build pattern is four steps: ask the AI to write the prompt, review it, test it, then schedule it.

  1. Ask your AI (the author builds these on ChatGPT) to draft the scheduled prompt in plain words (starter below).
  2. Edit the returned prompt for your column map, sheet name, and safety rules. Keep the rule that Created, Draft, Overdue, Paid, or a payment link alone is not proof of send.
  3. Test on three rows: an unsent draft, an invoice you know went out, and one with no visible send history. Only the middle row should flip to Sent. Put a fake invoice number on the draft row and confirm it still gets checked.
  4. Schedule it every morning before you open the tracker. In a follow-up, Sunnyvale says send status comes from the accounting connector after the email leaves the accounting system.

Starter request (author's wording, lightly cleaned):

Prompt
Build me a prompt that opens QuickBooks every morning and for every invoice
in my tracker checks whether it has actually been sent, does a quality
control check on the invoice, and marks it as sent in column C if it was
sent. Having an invoice number in the row does not mean it was sent. Go
look at the invoice.

The published prompt then requires: read the live tracker and live invoice every run; accept only a send or delivery event (or confirmed email-sent status) as evidence; never create, edit, send, resend, void, or delete an invoice; write only to the status column and a check log; leave Paid, Disputed, Cancelled, and similar special statuses alone.

What you need connected#

A ChatGPT account with QuickBooks and Google Sheets connected (per the author's stack notes), plus a tracker sheet. Sunnyvale's example map is B customer, C status, D agreement reference, E invoice number. Swap those labels for yours during setup.

Good to know#

  • This closes a human-in-the-loop gap. The nightly job still drafts; a person still reviews and sends; the morning job only records what actually left.
  • Failed sends, bounces, and missing activity history stay as exceptions. The job must not send or resend to invent evidence.
  • Same pattern applies to contract signed or not, PO received or not, or any onboarding step that needs a system-of-record check against a sheet row.

Same idea in Grok Bot#

Grok Bot can run the morning pass as a scheduled routine on one Bot, with the method saved as a skill first. Connect Gmail and related Google plugins if your proof of send lives in mail. For QuickBooks itself, only claim a path you have: if there is no QuickBooks plugin on your account, the Bot would need browser access on its computer and a signed-in session, which is slower and riskier than a connector. Keep send actions behind approval; this workflow is meant to mark status, not press Send.

Sources

  1. x.com
  2. x.com
  3. x.com
  4. x.com

Something wrong? Tell the bot