# Nonprofit grant deadline tracker with reminders

> For the full documentation index, see https://250highstreet.com/llms.txt

> Build a grant deadline tracker in SharePoint with funder, amount, stage and due date, plus a daily Power Automate flow that emails the grant lead.

A grant application tracker needs one row per grant with eight columns: Title, Funder, Program, Amount requested, Stage, Due date, Grant lead and Report due. Add a daily Power Automate flow that emails the grants due in 30 and 7 days. The list shows where each grant stands. The flow does the remembering.

This page covers the list and the reminder flow. It does not cover how to find funders, how to write a proposal, or what any funder requires. Those are outside what a tracker can tell you. Exact names may differ on your screen.

## Why a spreadsheet of grants goes wrong

A grant spreadsheet starts well. One person keeps it. Then three people add rows, a second copy appears in an email, and the due dates sit in a column that nobody sorts. A deadline is missed not because the work was hard, but because nobody saw the date coming.

Problems that come up:

- Two people own one grant, so neither one acts.
- The stage is written as free text: "working on it", "almost done", "in".
- The due date for the application and the due date for the report after an award are mixed in one column.
- Nobody gets a warning. The date is only seen when someone opens the file.

If you are still on a spreadsheet, see "[Replace a spreadsheet tracker with a SharePoint list](/guides/replace-spreadsheet-with-sharepoint-list/)" first.

## Step 1. Plan the columns

Keep the list small. Eight columns are enough to start.

1.  Title. Use it for the grant name, such as the funder name plus the program year.
2.  Funder. Single line of text.
3.  Program. Single line of text.
4.  Amount requested. A Number column.
5.  Stage. A Choice column with numbered choices:
    - 1 Researching
    - 2 Drafting
    - 3 Submitted
    - 4 Awarded
    - 5 Declined
6.  Due date. A Date column for the application deadline.
7.  Grant lead. A Person column. One name only.
8.  Report due. A Date column. Leave it blank until a grant is awarded.

That makes eight, counting Title. Our advice, not a Microsoft rule: keep the number prefix so the stages read in the order you work them.

Copy this list, column by column:

Title \| Single line of text \| funder name plus program year

Funder \| Single line of text \| who gives the money

Program \| Single line of text \| the funder's program name

Amount requested \| Number \| the amount in the application

Stage \| Choice \| 1 Researching, 2 Drafting, 3 Submitted, 4 Awarded, 5 Declined; default 1 Researching

Due date \| Date and time, date only \| the application deadline

Grant lead \| Person or Group \| one name only

Report due \| Date and time, date only \| blank until Awarded

Microsoft's Create a list page says you can start a list from an Excel file. If your grants sit in a spreadsheet today, you can start from that file and then set each column to the type shown above.

## Optional columns: letter of intent, full application and rolling dates

Some funders ask for a letter of intent (LOI) first and the full application later. Our advice, not a Microsoft rule: add two columns to the eight.

- LOI due. A Date column, date only. Leave it blank when the funder has no LOI step.
- Deadline type. A Choice column: 1 Fixed date, 2 Rolling.

For a fixed deadline, Due date holds the funder's date. For a rolling deadline, type your own target date in Due date and set Deadline type to 2 Rolling, so the daily flow still has a date to read. Keep Report due separate from both, because it belongs to the time after an award.

## Step 2. Create the list

1.  Open your SharePoint site and create a new list. Name it "Grants".
2.  Rename the Title column if you want to. One way to start: keep the name Title and put the funder and year in it.
3.  Add each column from Step 1 with the matching type.
4.  For Stage, paste the five numbered choices, one per line, and set the default to 1 Researching.
5.  Set Grant lead to allow one person only.
6.  Add three test grants, one due in about 30 days, one due in about 7 days and one due in 60 days, so you can test the flow later.

Do not add a column that counts the days left. Microsoft says the TODAY and ME functions are not supported in calculated columns, so a calculated column cannot use today's date. A flow can read today's date each time it runs, which is why the reminders live in a flow.

## Step 3. Make two views

View 1, "Open grants": show grants not yet decided. Microsoft says filters with \[Today\] or \[Me\] need the classic view editor (Edit current view, then Filters). Our advice, not a Microsoft rule: use the classic view editor for blank and "is not equal to" filters too. In that editor, filter Stage is not equal to "4 Awarded" and Stage is not equal to "5 Declined". Sort by Due date, soonest first.

View 2, "My grants": filter Grant lead is equal to \[Me\]. This one needs the classic view editor, because Microsoft says filters with \[Me\] need it. Each lead can open it and see only their own grants. Microsoft also says it is not possible to use the \[Today\] or \[Me\] filters when you filter from a column header.

A view changes what you see. It does not change who can open the data. If some grants are private, set list permissions instead.

## Step 4. Build the daily reminder flow

The goal: warn the grant lead 30 days before the due date and again 7 days before. One way to start is a flow that runs every day. Microsoft's page on scheduled flows says you can run a flow once a day, once an hour, once a minute, or on a date you set.

1.  Sign in to Power Automate.
2.  Select My flows, then the Cloud flows tab.
3.  Select Create from blank.
4.  Select Add a trigger and search for Recurrence. Select Recurrence.
5.  Set Interval to 1 and Frequency to Day.
6.  In Start time, use the format YYYY-MM-DDTHH:MM:SSZ. Microsoft says the Z means UTC time.
7.  In Time zone, pick your time zone. Then pick the hour and minute. An early morning time works well.
8.  Name the flow "Grant deadline reminders".

For the full build of a single reminder, see "[Send a reminder before a due date in a SharePoint list](/guides/send-reminder-before-due-date/)". This page changes it for grants.

## Step 5. Get the open grants, and do not stop at 100

Add the SharePoint action named Get items. Pick your site and the Grants list.

Two settings matter here. Microsoft says the default item limit is 100, and that Power Automate returns 100 items when you use the default options. Open Advanced options and set Top Count to a larger number. Microsoft says you can raise it up to the list view threshold limit of 5,000, and that going beyond 5,000 makes Power Automate fail with an error. Microsoft also says that on lists with more than 5,000 items, you should turn on Pagination in the action settings, because a filter query can return no records when no match falls in the first 5,000. Set Top Count to 5000 and turn on Pagination so nothing is skipped.

Now the Filter Query. Microsoft says Get items supports a filter query written in OData, so the list server filters the items. The pattern is the column name, an operator, then the value in single quotes. Microsoft lists eq, ne, lt, le, gt and ge as operators. Spaces in a column name are replaced with \_x0020\_, so the column "Due date" is written Due_x0020_date.

Skip grants already decided:

- Stage ne '3 Submitted' and Stage ne '4 Awarded' and Stage ne '5 Declined'

This keeps the reminders for grants in Researching or Drafting. One way to start is to leave Submitted out, since the application is already in. If your team wants a nudge about a pending decision, change the filter.

## Step 6. Pick the 30 day and 7 day grants

Microsoft's function reference lists three date functions you can use here. utcNow returns the current timestamp. addDays adds a number of days to a timestamp. formatDateTime writes a date in a pattern such as yyyy-MM-dd.

One way to start is two Get items actions, one for each warning:

- The 30 day list: add this to the filter query: and Due_x0020_date ge 'formatDateTime(addDays(utcNow(),30),'yyyy-MM-dd')' and Due_x0020_date lt 'formatDateTime(addDays(utcNow(),31),'yyyy-MM-dd')'. Enter each part inside the quotes as an expression.
- The 7 day list: the same, with 7 and 8 in place of 30 and 31.

Our advice, not a Microsoft rule: use a range, not eq, because a date column also stores a time. Both expressions use UTC time, so a grant can shift by a day near midnight. Test with your three sample grants and read the results before you trust the flow. The exact names may differ on your screen.

Why not use a Condition inside a loop? You can. A Condition is easier to see and change. The filter is faster for a large list. Pick the one your team can read.

## Step 7. Send one summary email

One way to start is one email per run, not one per grant.

1.  After the Get items action, add Data Operation, Create HTML table. Microsoft describes it as changing a JSON array input into an HTML table. Set From to the value output of Get items.
2.  Add the Office 365 Outlook action Send an email (V2).
3.  Set To to the people who run grants. One way to start: a shared mailbox or the grants manager.
4.  Write the subject, such as "Grants due in 30 days".
5.  Put the table output in the Body. Microsoft says to select IsHtml if you send an HTML table by email. Send an email (V2) has no IsHtml setting, so send one test email and check that the table shows.

If you want the email to go to each grant lead, add a loop and send one email per lead. That takes more steps. For a small team, one summary to one person is enough.

Do the same for the 7 day list, with its own subject, such as "Grants due in 7 days".

## Step 8. Test, then switch it on

1.  Run the flow by hand from My flows.
2.  Open the run and check the inputs and outputs of each step. Microsoft says the run history is on the flow's Details page.
3.  Check that only the grant due in 30 days appears in the first email and only the grant due in 7 days in the second.
4.  Delete the test grants.

For alerts on grants that are already past their date, see "[Late tasks nobody notices](/guides/late-tasks-nobody-notices/)".

## Reports after an award

Once a grant is Awarded, the Report due column matters. One way to start: copy the flow, change the filter to the Report due column, and send it to the same lead. Keep it a separate flow, so a change to one does not break the other.

## What to avoid

- Do not put two names in Grant lead. One grant, one owner.
- Do not use free text for Stage. Use the numbered choices.
- Do not leave Top Count at the default. You would get only 100 rows.
- Do not send one email per grant to the same person every day. It becomes noise.
- Do not treat the tracker as advice about any funder. It tracks dates you enter. You still read each funder's own instructions.
- Do not forget a backup. If the flow owner leaves, the flow may stop. Name someone who can open it.

## Honest limits

A reminder does not write the grant. It makes the date hard to miss. The tracker is only as good as the dates people enter, so check them against each funder's own notice. This page does not say which licenses you need. Check with your admin before you build.

## When to get help

You can build all of this yourself in Microsoft 365. If you would rather have it built and tested for your team, I do that. A tracker like this is a fixed price: \$5,000 for one, built in 2 weeks. See "[What a SharePoint tracker costs to build](/guides/what-a-sharepoint-tracker-costs/)". Bring one example of the problem to a free call.

I am Al Davies. I run 250 High Street LLC and build SharePoint trackers and Power Automate flows for operations teams. I work remotely. The first call is free, and I will not try to sell you anything.

See trackers I built: [Tools I built](/portfolio/)

## FAQ

### Can I start from my grant spreadsheet in Excel?

Microsoft's Create a list page lists "Excel file" as a way to start a list, so a spreadsheet of grants can become the Grants list with the eight columns above.

### Does this work for scholarship applications?

Our advice, not a Microsoft rule: use the same eight columns and rename Funder to the scholarship provider.

### How do I track deadlines for several funders?

Give each grant its own row with a Funder column and one named Grant lead, and let the daily flow find every row due in 30 or 7 days.

### How do I log a rolling deadline?

Add the optional Deadline type column, and for a rolling grant type your own target date in Due date so the flow has a date to read.

### Why does my flow only see 100 grants?

Get items returns 100 items by default. Set Top Count in Advanced options, up to 5,000, and turn on Pagination.

## Sources

- [Microsoft Learn, Run a cloud flow on a schedule in Power Automate](https://learn.microsoft.com/en-us/power-automate/run-scheduled-tasks)
- [Microsoft Learn, In-depth analysis into Get items and Get files SharePoint actions](https://learn.microsoft.com/en-us/sharepoint/dev/business-apps/power-automate/guidance/working-with-get-items-and-get-files)
- [Microsoft Learn, Use data operations in Power Automate](https://learn.microsoft.com/en-us/power-automate/data-operations)
- [Microsoft Learn, Workflow expression functions reference](https://learn.microsoft.com/en-us/azure/logic-apps/workflow-definition-language-functions-reference)
- [Microsoft Support, Create, change, or delete a view of a list or library](https://support.microsoft.com/en-us/sharepoint/lists/data-and-lists/create-change-or-delete-a-view-of-a-list-or-library)
- [Microsoft Learn, Triggers in Power Automate](https://learn.microsoft.com/en-us/power-automate/triggers-introduction)
- [Microsoft Support, Introduction to SharePoint formulas and functions](https://support.microsoft.com/en-us/sharepoint/libraries/introduction-to-sharepoint-formulas-and-functions)
- [Microsoft Support, Use filtering to modify a SharePoint view](https://support.microsoft.com/en-us/office/use-filtering-to-modify-a-sharepoint-view-3d8efc52-0808-4731-8f9b-3dfaeacea3d4)
- [Microsoft Support, Create a list](https://support.microsoft.com/en-us/office/create-a-list-0d397414-d95f-41eb-addd-5e6eff41b083)

## Related guides

- [A volunteer hours tracker in SharePoint for a nonprofit](/guides/volunteer-hours-tracker-nonprofit/)
- [Court date tracker for a small law firm](/guides/court-date-tracker-sharepoint/)
- [Insurance policy renewals missed or found late](/guides/insurance-agency-renewal-tracker-sharepoint/)

Source: https://250highstreet.com/guides/nonprofit-grant-deadline-tracker-sharepoint/
