Weekly UK filing deadline tracker for your client book
Every Monday, check each client's accounts and confirmation statement dates on the UK register, open tasks for what is due soon, and post the practice one clear status update.
Every Monday at 8am, run a filing deadline review across my whole client book and tell the practice where it stands.
Start by reading my client list from Google Sheets with Get Values. Each row has the client name, their UK company number, and the partner who owns the relationship. Read the company number column as text so leading zeros are preserved, and zero pad anything shorter than 8 characters before you look it up, because Companies House company numbers are 8 character zero padded strings and 04829911 is not the same as 4829911.
For each client, use Companies House Get Company Profile to pull the next accounts due date and the next confirmation statement due date, along with whether either one is already flagged as overdue. The fields that matter are accounts.next_due, accounts.overdue, confirmation_statement.next_due and confirmation_statement.overdue. If a company number returns nothing, or the company is dissolved, do not fail the run. Set that client aside and mention it at the end of the Slack summary so someone can fix the sheet.
Then use List Filing History for each client to confirm what has actually been filed. Look at the accounts and confirmation statement filings and compare the most recent one against the period the profile says is now due. If the register still shows a due date but the matching return has already been accepted for that period, treat it as filed and leave that client out of the buckets. The point is to avoid chasing partners for work that is already done.
Sort every client and every filing type into four buckets based on the statutory date: already overdue, due within 7 days, due within 30 days, and due within 90 days. A single client can appear in more than one bucket if their accounts and confirmation statement fall in different windows, so treat each filing type as its own line item rather than collapsing them per client.
For anything sitting inside the 30 day window, including everything already overdue, create an Asana task with Create a Task in my practice deadlines project. Name the task for the client and the filing type, for example "Harrow Textiles Ltd, confirmation statement". Set the statutory date as the Asana due date, not the date you are running, and assign the task to the partner who owns the relationship by matching the sheet's partner name to an Asana user by name or email. If no Asana user matches, still create the task so the deadline is not lost, leave it unassigned, and call it out in the Slack summary.
Before you create anything, pull the tasks that already exist in that project with Get Multiple Tasks and use them to dedupe. If a client already has an open task for the same filing type, skip it rather than creating a second one, because this runs every week and the same deadline will stay in range for several runs. Do not use Asana's workspace task search for this, it requires a premium plan. Scope the read to the project instead.
Finish by sending one Slack message with Send a Message to our practice channel. Lead with the overdue clients, since those are the ones with real consequences, then the 7 day bucket, then the 30 day bucket, then a count of the 90 day bucket so people can see what is coming without reading every line. Close with the tasks created this week and note anything skipped as a duplicate. For each line include the client name, company number, filing type, statutory date, and owning partner. Write it so nobody has to open Companies House to know where the practice stands.
Companies House allows 600 requests per rolling 5 minute window per API key, and this workflow makes two calls per client. Work through the client list steadily rather than firing every lookup at once. If you get a 429, honour the Retry-After header and resume where you left off instead of restarting the run or dropping the remaining clients.
What does this prompt do?
- Reads your client list from a Google Sheet, including each client's company name, registered company number, and the partner who owns the relationship.
- Looks up every client on the UK company register to pull the next accounts deadline, the next confirmation statement deadline, and whether either one is already late.
- Double checks the filing record for each client so anything already submitted for the current period drops out of the list instead of chasing your team.
- Sorts the whole client book into overdue, due within 7 days, due within 30 days, and due within 90 days, then opens an Asana task for every deadline inside 30 days, assigned to the owning partner with the statutory date as the due date.
- Posts one Slack message to your practice channel that leads with the overdue clients, so nobody has to open Companies House to know where things stand.
What do I need to use this?
- A Google Sheet listing your clients with columns for client name, UK company number, and owning partner.
- A Companies House account so the workflow can read the public register.
- An Asana project where filing tasks should be created, plus partner names or emails that match your Asana members.
- A Slack workspace and the channel where your practice wants the weekly update.
How can I customize it?
- Change the day and time. Monday at 8am suits most practices, but a Friday afternoon run works if you plan the week ahead.
- Adjust the buckets. The 7, 30, and 90 day thresholds are a common reminder cadence, and you can widen the 90 day view or tighten the 30 day task window.
- Decide what earns a task. By default anything inside 30 days becomes an Asana task, and you can raise that to 60 days for larger client books.
- Swap the destinations. The client list can live in any sheet you already maintain, and the summary can go to a different Slack channel or a partner group.
FAQs
Will it create a duplicate task if the same client is due for weeks in a row?
Do I need a paid Asana plan for this?
What happens if a client has already filed?
Does this work for clients with different year ends?
What if a partner name in my sheet does not match anyone in Asana?
How many clients can it handle?
Related templates
Stop buying stale lists. Reps run a saved search, work the results like an inbox, and only the accounts they approve ever reach your CRM.
See how your brand's news coverage and sentiment stack up against four competitors, then let an assistant write the weekly report for you.
One screen showing every social post waiting on approval, sorted by deadline, so reviewers can approve or reject without leaving the page.
Every Monday, find the past champions and closed-won contacts who changed jobs, update Attio, and get the moves worth chasing in Slack.
Staff submit what happened, your social manager edits the copy, picks the accounts and puts it on the calendar without a single spreadsheet.
Drag creators through Sourced to Wrapped on a board grouped by campaign, with audience stats on every card and a one-click brief for each creator.
Stop checking Companies House client by client.
Let this run every Monday so your practice sees every filing deadline coming, with the work already assigned.