Agent setup guide
Grant Deadline Tracker & First Draft
Weekly grant deadlines, owners and missing pieces in Slack — plus a first-draft narrative on each grant due within 21 days, from your own facts.
What it does
Weekly grant deadlines, owners and missing pieces in Slack — plus a first-draft narrative on each grant due within 21 days, from your own facts.
- Every Monday, reads the open grants in your Notion grants database (up to 50) and the text of your programme-facts page.
- Dates are worked out in code, never by the AI: days until or since each date, the window and business days are computed in your workflow's time zone, and records outside the window are skipped before the AI sees them.
- Posts one Slack status: deadlines in the next 60 days with owners and missing pieces, plus anything overdue (days left and overdue worked out in code).
- For each grant due within 21 days (picked in code), AI drafts the narrative sections (need, programme, outcomes, evaluation) only from your programme facts, marking every gap as [NEEDS: …].
- Appends the draft, clearly marked as a first draft, to that grant's Notion page — once per grant (remembered for 180 days).
What it needs
- A paid plan (agents run live on paid plans).
- An AI provider key (Settings → AI Providers).
- Notion and Slack, connected in Settings → Integrations.
- A Notion grants database (one page per grant with funder, deadline, owner and status) and a programme-facts page, both shared with Fluxo Flow.
What it doesn't do
- It drafts and organises for a person to approve; your grant writer edits, verifies and submits — the agent never submits an application.
- It makes no claims or figures up: anything not in your programme facts is left as [NEEDS: …].
- It doesn't search for new grants or read funders' websites or PDFs.
- It reads grant properties, not the body text of grant pages; on the programme-facts page it reads the top-level text (up to 500 blocks / 50,000 characters), not text inside toggles or sub-pages.
- It reads up to 50 open grants per run, and doesn't change grant statuses.
Availability and plans
Available
Its workflow is built and tested, and every app it needs is live. You can get it and set it up now.
Included free on the Enterprise plan; on other paid plans it's a one-time purchase per workspace (the price is on the Agents page). The Agents page in the app always shows its current status.
Before you start
- A paid plan: agents run live, and the Free plan only runs Dry Runs.
- An AI provider key (OpenAI, Anthropic, Google and more) in Settings → AI Providers. AI usage is billed by your provider.
- These apps, connected in Settings → Integrations: Notion and Slack.
- Nothing to send: the agent runs on a schedule.
- About 25 minutes.
Set it up step by step
Get the agent first (buy it, or it's already yours when your plan includes it), then in Agents → My agents press “Set up this agent”. That creates the agent's workflow in your workspace (it counts towards your plan's workflow limit) and opens the canvas with a setup checklist above it. Each item links to the exact place to go and ticks itself off when it's done.
1. Connect your AI provider
The AI steps run on your own key (OpenAI, Anthropic, Google and more). Add one in Settings → AI Providers.
2. Connect Notion
Connect Notion and share your grants database and programme-facts page with Fluxo Flow (Settings → Integrations → Notion, then ••• → Connections on each).
3. Connect Slack
Connect the Slack workspace your grants team uses (Settings → Integrations → Slack).
4. Describe your grants database
Open “Work out what's due and what's missing” and “Draft the narrative sections” and replace the placeholder in each with your properties and closed statuses.
| Setting | What to enter | In step |
|---|---|---|
| Your grants database (status digest) | Replace the placeholder with your organisation's name, your grants database properties (grant name, funder, deadline, owner, status, required pieces, notes) and which statuses mean submitted, awarded, declined or closed. It starts as “[DESCRIBE YOUR ORGANISATION, YOUR GRANTS DATABASE PROPERTIES (NAME, FUNDER, DEADLINE, OWNER, STATUS, REQUIRED PIECES) AND WHICH STATUSES MEAN SUBMITTED OR CLOSED HERE]” until you replace it. | “Write the deadlines status” |
| Your grants database (drafting) | Paste the same description again here, so the drafting step reads the grant pages the same way. It starts as “[DESCRIBE YOUR ORGANISATION, YOUR GRANTS DATABASE PROPERTIES (NAME, FUNDER, DEADLINE, OWNER, STATUS, REQUIRED PIECES) AND WHICH STATUSES MEAN SUBMITTED OR CLOSED HERE]” until you replace it. | “Draft the narrative sections” |
5. Pick your grants database and facts page
Open “Read your open grants” (account, database, open-grants filter), “Read your programme facts” (account, page link) and “Add the draft to the grant's page” (account).
| Setting | What to enter | In step |
|---|---|---|
| Notion workspace (grants) | The Notion workspace your grants database is in. Pick your connected Notion account. | “Read your open grants” |
| Grants database | The database with one page per grant. Share it with Fluxo Flow first: ••• → Connections. | “Read your open grants” |
| Filter for open grants | Notion's filter that keeps only open grants, e.g. {"property": "Status", "status": {"does_not_equal": "Submitted"}} (combine several with {"and": […]}). | “Read your open grants” |
| Notion workspace (programme facts) | The same Notion workspace. Pick your connected Notion account. | “Read your programme facts” |
| Programme-facts page | Paste the link of the Notion page with the facts you're happy to use in applications (need, programme, outcomes, budget, figures and their sources). Share it with Fluxo Flow first: ••• → Connections. Text inside toggles isn't read. | “Read your programme facts” |
| Notion workspace (add drafts) | The same Notion workspace, used to add drafts to grant pages. Pick your connected Notion account. | “Add the draft to the grant's page” |
6. Pick the Slack channel
Open “Post the deadlines to Slack” and pick your account and channel. Invite the app to private channels first (/invite @Fluxo Flow).
| Setting | What to enter | In step |
|---|---|---|
| Slack account | The Slack workspace your grants team uses. Pick your connected Slack account. | “Post the deadlines to Slack” |
| Grants channel | Where the weekly deadlines post goes, e.g. #grants. | “Post the deadlines to Slack” |
7. Test it with Dry Run
Press Dry Run: the agent runs on sample data with no messages sent and nothing written to your apps.
8. Switch the trigger on
Open the trigger, set your time zone and switch the schedule on. It runs every Monday at 8:00.
How it works
The agent is a normal workflow with 17 steps (2 AI steps). You can open, edit and monitor it like any other workflow.
- Mondays at 8:00 — Runs on a schedule (cron 0 8 * * 1, UTC — change it in the trigger's settings). Runs every Monday morning. Set your time zone on the trigger.
- Read your open grants — Notion: Query a database. Reads your Notion grants database (open grants only, using your filter): funder, deadline, owner, status, required pieces and notes.
- Read your programme facts — Notion: Read a page's text. Reads the text of your Notion programme-facts page: the need, programme, outcomes, budget and figures you're happy to use in applications, with their sources, written however you like.
- Check the deadlines — Step. In code, not AI: works out the days to each grant's deadline in your time zone and keeps grants overdue or due in the next 60 days, sorted into tiers (overdue, due within 21 days, due in 22–60 days). Grants without a readable deadline are listed as not checked. If your deadline property has another name, add it to the fields here.
- Write the deadlines status — AI step (runs on your AI provider key). AI writes the Slack status from the grants the date check kept: deadlines in the next 60 days with owners and the pieces still missing, anything overdue, and which grants get a first draft. Days left and tiers come from code.
- Post the deadlines to Slack — Slack: Post a message. Posts what's due, owners, missing pieces and which grants are getting a first draft to your grants channel.
- Pick the grants to draft — Step. In code, not AI: keeps only the open grants whose deadline is today or within the next 21 days, so only those reach the drafting step. Change the window here (within.max).
- Each grant due within 21 days — Repeats the steps below for each item (up to 50 per run). Checks every grant the date check kept (up to 50) for a first draft.
- [For each item — “Each grant due within 21 days”] Already drafted? — Recalls what it remembered earlier (memory “grant-deadline-drafter”). Checks whether this agent already added a first draft to this grant's page (remembered for 180 days).
- [For each item — “Each grant due within 21 days”] First draft already added? — Decision: picks the branch to follow. Grants that already have a first draft from this agent are skipped, so nothing is added twice.
- [For each item — “Each grant due within 21 days”] Already drafted — Kept in the run history. Branch: Already drafted. A first draft was added on an earlier Monday.
- [For each item — “Each grant due within 21 days”] Draft the narrative sections — AI step (runs on your AI provider key). Branch: Not yet. For each grant due within 21 days (picked in code): AI drafts statement of need, programme description and outcomes from your programme facts only, marking every gap as [NEEDS: …]. Grants that aren't open are skipped.
- [For each item — “Each grant due within 21 days”] Still open? — Decision: picks the branch to follow. Grants the AI found open get a draft on their page; the rest are skipped.
- [For each item — “Each grant due within 21 days”] Not drafted — Kept in the run history. Branch: Not open. The grant isn't open (submitted, awarded, declined or closed); nothing was added.
- [For each item — “Each grant due within 21 days”] Add the draft to the grant's page — Notion: Add content to a page. Branch: Open. Appends the first draft (marked as a draft, gaps marked [NEEDS: …]) to the end of the grant's Notion page. Nothing is submitted.
- [For each item — “Each grant due within 21 days”] Remember it was drafted — Remembers it for later runs (memory “grant-deadline-drafter”, kept 180 days). Remembers that this grant has a first draft (for 180 days) so it isn't added again next Monday.
- Week done — Kept in the run history. Deadlines posted and first drafts added where due.
Test it with Dry Run
Press Dry Run in the canvas. The agent runs on the sample data stored on its trigger (the “Sample data for Dry Run” box), so you can check every step's output before anything is live.
- Nothing is sent or written: app actions, emails and Slack posts are simulated, and AI steps don't call your AI provider.
- For-each loops repeat only the first 3 items.
- Memory steps don't read or write stored memory: a recall finds nothing, and a save only shows what it would store.
Go live
- Open the trigger, set your time zone and switch the schedule on. It runs every Monday at 8:00.
- Scheduled runs start only once the schedule is activated, and can't repeat faster than your plan's minimum interval.
- The setup checklist adds a “paid plan” item before activation: live runs need a paid plan (the Free plan only runs Dry Runs).
- When every checklist item is done and the trigger is on, the checklist says “Live — this agent is running”. Follow its runs in the workflow's History tab and in Analytics → Agents.
Questions
Where do the facts come from?
Only from one Notion page you keep, written however you like — headings, paragraphs or bullets (e.g. “Families served 2025 — 1,240, from our annual report”). Keep the facts in the page's top-level text, not inside toggles. The draft uses those facts as written and marks anything missing as [NEEDS: …]; it makes nothing up.
Does it find or submit grants?
No. It tracks the grants you've already listed in Notion and drafts narrative sections; your grant writer edits, completes and submits.
Will it add a draft every week?
No. Once it has added a first draft to a grant's page it remembers that for 180 days and skips that grant.
How are deadlines worked out?
In code, not by the AI: the agent counts the days from today (in your trigger's time zone) to each grant's Notion date property — Deadline, Due date, Application deadline or Submission deadline — and only grants overdue or due in the next 60 days reach the status; only those due within 21 days get a draft. Change the windows in “Check the deadlines” and “Pick the grants to draft”, and add your property name there if it's different.
Troubleshooting
- “No AI provider connected” or a rejected key: connect or fix the key in Settings → AI Providers, then press Test there.
- A checklist item stays unticked: the setting is still empty or still contains its placeholder text. Open the step from the checklist and fill it in.
- An app step fails with “Needs reconnect”: the account's access was revoked or expired. Reconnect it in Settings → Integrations.
- Slack says the app isn't in the channel: in Slack, type /invite @Fluxo Flow in that channel (always needed for private channels).
- It didn't run at the expected time: the schedule must be activated, and its time is in the trigger's timezone.
- A step failed: open the run in History and check that step in the Trace tab for the error and what it received.
Generated from the agent's own workflow, so it always matches what the agent does. Last updated .