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
Stage a batch of filings overnight, then approve each completed form from a screenshot before anything is ever submitted.
Pick a client and a date range to see sent, replies, meetings booked and the real deal value your cold email produced, campaign by campaign.
Review every conversation Fin closed as resolved, judge which ones actually stuck, and see what the gap is worth against your bill.
Merge your IT, HR and Facilities queues into one list ranked by SLA time left, then reply, change status and escalate without ever opening Jira.
Work every return, damage and warranty claim in one queue, with the order, the delivery date and a policy-backed recommendation already on screen.
See every page's translation status at a glance, edit translations side by side with the English, and publish only what your team has actually approved.
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.