Collect monthly supplier and utility invoices into Google Drive

On the first business day of each month, a browser agent logs into your supplier and utility portals, files every invoice in Drive, and reports back in Slack.

Agentic Task
NotteGoogle DriveSlackFinanceOperationsDocument ProcessingData Sync
PromptCreate

On the first business day of every month at 6am, collect that month's invoices and statements from the supplier, utility, and B2B portals that have no API, file them into Google Drive, and report back in Slack. Use a cron trigger that fires at 6am on the 1st, 2nd, and 3rd of each month, and exit immediately without doing any work unless today is genuinely the first business day of the month. That way the collection happens exactly once even when the 1st falls on a weekend or a public holiday.

Portal logins must never appear in this prompt or in the workflow configuration. Before the first scheduled run, set up a Notte credential vault: call Create Vault once, then Add Vault Credentials once per portal, keyed to that portal's login URL. Every scheduled run then references that vault by its id and attaches it to the browser session, so the agent authenticates out of the vault and no password is ever passed in the task text, logged, or repeated in the summary.

Work through the portal list one portal at a time. For each portal, use Start Session to open a cloud browser session with the credential vault attached, then use Start Agent against that session, telling it to log in, locate the invoices or statements dated in the month just gone, and download each one. Notte agent runs are asynchronous: Start Agent returns immediately, so poll Get Agent Status until the status leaves active, waiting roughly 15 to 30 seconds between checks. A Notte session defaults to a maximum duration of 15 minutes, so raise the max duration for portals known to be slow, and treat a run that hits the ceiling as a failure for that portal rather than retrying indefinitely.

When an agent run finishes, the downloaded documents live in that session's download storage rather than in the agent's written answer. Use List Session Downloads to see what the agent actually captured, then Download Session File to get a download link for each document. If a run reports success but produced no downloads at all, treat that portal as failed and say so in the summary instead of quietly reporting nothing.

File everything into Google Drive under a dated folder for the month. Use Create Folder to make a folder named for the month being collected in YYYY-MM format, inside the parent finance folder I nominate, and reuse that folder if it already exists rather than creating a duplicate. Then use Upload File (Multipart) to upload each retrieved document into it, naming files so the portal and the month are obvious, for example "2026-07 - Acme Utilities - invoice.pdf". Upload File (Multipart) handles files up to 5MB; if a document is larger than that, skip it and note it in the summary rather than failing the run.

The agent must stop rather than guess. If a portal presents multi-factor authentication, a one-time passcode, a CAPTCHA, or a login screen that no longer matches what it expects, it should stop work on that portal immediately and report what it saw. The same applies if the portal logs in fine but its invoice or billing area has clearly been redesigned and the agent cannot confidently identify the right documents. Never try to work around an authentication challenge, never submit a guessed code, and never download a document the agent is not confident is the correct one. A portal that stops this way is a normal reportable outcome, not an error to retry.

Finish with a single Slack Send a Message post to the finance channel. List each portal that succeeded along with exactly which documents were collected and filed, then a clearly separated section for the portals that did not complete, each with its reason: multi-factor prompt, changed layout, login rejected, timed out, or nothing found for the month. Include a link to the month's Drive folder. Finance treats that failure list as their manual to-do list, so name the portal and the reason plainly, and send the message even if every single portal failed.

Handle each portal independently throughout. One portal failing, timing out, or stopping on a login challenge must never prevent the remaining portals from being attempted, and must never stop the Drive filing or the Slack summary from happening.

Example output

Monthly portal collection: July 2026 Collected (4 of 6) • Acme Utilities: 1 invoice (INV-88213) • Northwind Supplies: 2 documents (invoice and monthly statement) • Citywide Water: 1 invoice • Bluepeak Telecom: 1 invoice Needs a person (2) • Meridian Freight: stopped at a multi-factor prompt, a code was sent to the account phone • Halton Trade Supplies: billing area has been redesigned, could not confidently identify the invoices Filed in Drive: Finance / Supplier invoices / 2026-07

What does this prompt do?

  • Signs into each supplier, utility, and B2B portal on your list using logins held in a secure vault, so no password ever sits inside the workflow itself.
  • Finds and downloads the newest invoices and statements at each portal, adapting to whatever that particular site looks like.
  • Files every document into a dated folder for the month in your Google Drive, so each month's paperwork stays in one place.
  • Posts a Slack summary showing which portals worked, exactly what was collected, and which portals need a person, so finance can chase just those.

What do I need to use this?

  • A Notte account, which provides the browser agent that does the logging in and downloading
  • The web address and login details for each portal you want collected
  • A Google Drive account and a parent folder where the monthly folders should be created
  • A Slack workspace and a channel where the monthly summary should be posted

How can I customize it?

  • Change the timing, for example collecting on the last day of the month instead of the first business day, or running quarterly
  • Add or remove portals from the list as suppliers change, without touching the rest of the workflow
  • Rename the monthly folders or point them at a different Drive location to match how your finance team already files things
  • Choose which Slack channel gets the summary, and tag a specific person whenever a portal needs manual follow up

FAQs

What happens if a portal asks for a two-factor code?
The agent stops on that portal straight away and reports it instead of guessing. That portal shows up in the Slack summary under the portals that need a person, so someone on your team can grab those documents manually. The other portals still get collected as normal.
Is it safe to store our portal passwords?
Logins are kept in Notte's credential vault rather than written into the workflow. The agent pulls the right login from the vault at the moment it signs in, so passwords are never part of the instructions the agent is given and never appear in the Slack summary.
What if a supplier redesigns their portal?
The agent is told to stop rather than guess. If the login screen or the billing area no longer looks like what it expects, it reports that the layout has changed and moves on to the next portal, so you find out immediately instead of getting the wrong files.
Will this work with portals that do not offer any integration?
Yes, and that is the main reason to use it. The agent works the site the way a person would, by opening pages and clicking through them, so it suits the smaller suppliers, utilities, and trade portals that will never build a proper integration.
If one portal fails, does the whole run stop?
No. Each portal is handled on its own, so a failure at one supplier does not block the others. The documents that were collected still get filed in Drive and the Slack summary is still posted, listing both the successes and the failures.

Related templates

Auto-fix your calendar when a flight slips, and flag what's at risk

When your flight moves, your calendar times get corrected automatically and you get a Slack note naming the meetings you're about to miss.

Google Calendar
AviationStack
Slack
Agentic Task
Trace phishing emails to the sending IP and report abuse

Every 15 minutes, forwarded phishing reports get traced back to the server that really sent them, with a verdict in Slack and the worst senders reported.

AbuseIPDB
Gmail
Slack
Agentic Task
Turn procurement portal tenders into CRM deals each morning

Every weekday at 7am, sign in to the tender portals you track, filter new notices against your bid criteria, and open a deal for the ones worth chasing.

Anchor Browser
Google Sheets
HubSpot
+1
Agentic Task
Turn each week's football fixtures into a venue staffing plan

Every Monday, rank the week's matches by expected demand, put the big ones on your venue calendar, and post a rota-ready summary to Slack.

API-Sports
Google Calendar
Slack
Agentic Task
Turn 5 star Yotpo reviews into a weekly marketing content queue

Every Tuesday we pull your best new reviews, draft social captions, email testimonials and product page quotes, then stage them in Notion for approval.

Yotpo
Notion
Slack
Agentic Task
Catch bad shipping addresses before you buy the label

Every weekday morning, unfulfilled orders get an address check: harmless typos fixed automatically, risky addresses held with a note to the customer.

Shippo
Shopify
Gmail
+1
Agentic Task

Stop logging into a dozen portals every month.

Let a browser agent do the monthly invoice round, file everything in Drive, and tell your finance team exactly which portals still need a human.