← All apps

MyCompanyDueDil

A UK sales & marketing CRM built on live company data — find companies, prove they're real, and work every enquiry through to a closed deal.

WebAndroidiOSWindows

Overview

MyCompanyDueDil brings Companies House, HMRC VAT and your email-campaign data into one workspace. Build a watch list of the UK companies that matter, pull each one's live profile, officers and a parsed accounts summary, and check any VAT number against HMRC. Find verified business contacts, see which of them are genuinely engaging with your campaigns, and turn the warm ones into leads — then work those leads across a drag-and-drop pipeline to a closed deal. Marketing, sales and due diligence in one place, on the web and on your phone.

Get MyCompanyDueDil

Features

Due diligence — Companies House & VAT

  • My Company Watch: a dashboard of every company you watch, with status and accounts-due flags
  • Full profile — status, type, incorporation, SIC codes, registered office and officers
  • Parsed accounts summary: up to ten years of turnover, profit, net assets and cash
  • HMRC VAT check that returns the registered name, address and a proof-of-check consultation number
  • View and download any filing PDF; scanned-only accounts read out on demand

Marketing — engagement & lists

  • Top Contacts leaderboard ranking people by real campaign engagement
  • Campaign stats matrix with opens, clicks and delivery — bots and scanners filtered out
  • Email stats with a clicked-link summary and an opens/clicks timeline
  • Mailing lists and a rule-based segment builder with a live match count
  • Find verified business contacts for a company and import people from CSV or Excel

Sales — leads to closed deals

  • Leads board: a Kanban of configurable stages with draggable, scored lead tiles
  • Enquiry inbox that turns incoming emails into leads automatically
  • Sales pipeline: drag deals across stages to Won or Lost, each linked to its company and contact
  • A cross-deal activity agenda — overdue, today, this week — so nothing waits without a next step
  • Live pipeline reports: value-by-stage funnel, close-month forecast and stalest deals

Built for a team

  • Role-based access — marketing, sales and admins each get their own workspace
  • New sign-ups are approval-gated; admins grant access per screen
  • Workflow automation that keeps deals moving on their own
  • Shared company history so every call, email and meeting is on the record
  • Selectable colour themes — light, dark, classic and high-contrast

Benefits

  • One workspace: find a company, verify it, contact it and close it — no juggling three subscriptions
  • Chase real engagement, not bot-inflated open rates
  • Prove a company is real and VAT-registered before you commit, with an HMRC consultation number as evidence
  • Never drop a lead — enquiries capture themselves and every deal always has a next action
  • Read the numbers without wading through a whole accounts PDF

Technology & platforms

FlutterNestJS APICompanies House APIHMRC VAT APIiXBRL parsingSendGridFirebase Auth

WebAndroidiOSWindows

Release history

  1. v1.0.3build 9 · 2026-08-22 · android, windows, web

    - **Calls and tasks can be scheduled against a person, with no deal involved.** Until now every activity had to belong to a deal, so lining up "ring Fred on Tuesday" meant inventing a deal for Fred first — which put things on the pipeline that were not deals and quietly skewed the forecast. Prospecting is exactly the business of contacting people you have no deal with yet. A **Schedule a call or task** button now sits on a contact's Pipeline tab, and those activities appear on the Activities screen alongside everything else. - **Marking an activity done now asks what happened.** "Done" on its own could not tell *spoke to them, call back next month* from *wrong number*, and those lead to opposite next actions. Completing a call or meeting offers **Spoke to them / No answer / Left a message / Wrong number**, or **Held / They did not show / Rescheduled** for a meeting, with room for a note. It is skippable — **Just done** closes it with no outcome — because ticking things off has to stay a single tap. The list is maintained under **Admin → Activity outcomes** and is deliberately short to start with; add to it once you can see what people actually write. - **A dense Table view on Activities, alongside the Agenda and Calendar.** Every column sorts by tapping its heading — Done, Type, Subject, Deal/company, Outcome, Contact, Due and Assigned to — which suits a wide screen far better than the cards do. The **Contact** column opens that person's page. Filter chips across the top narrow all three views by period (To-do, Overdue, Today, Tomorrow, This week, Next week) and by type, and a filter stays put when you switch tabs. - **The Last 7 Days figures on Email Stats are now clickable.** Tapping **38 clicked** used to do nothing unless you had first picked a campaign — which is backwards, because the screen opens on "All email (last 7 days)" and those are the numbers you most want to look into. Every headline tile and every row of the breakdown now opens the list of people behind it, across all the campaigns sent in that week, and each person can be opened from there. Picking a single campaign still narrows it to that campaign as before. - **Write to a contact from anywhere, and the CRM gets a copy automatically.** Wherever a contact's email is shown there is now a small **write** icon that opens a draft addressed to them — on the contact page, in a contact list, and on a company's Contacts card. Every draft raised this way is **copied to the CRM address** (crm@vpsl.co.uk to begin with), so the CRM keeps a record without anyone having to remember a cc. Nobody remembers a cc on the emails that matter, which are the ones sent in a hurry. - **Email everyone at a company in one go.** The Contacts card has an **Email all** button that opens a single draft addressed to every contact held for that company, copied to the CRM address like any other. All the addresses go in the To line rather than Bcc — they are colleagues at the same firm who would expect to see each other, and hiding them tends to produce the same message sent three times. - **The CRM copy address is a setting, not a fixed value.** **Admin → App settings** holds it, so it can be changed without a new release. Clearing it stops the copying altogether. - **"Master Contacts" is now "Global Contact List"** everywhere it appears. - **You can now say what would make the app better, and see what happened to it.** A lightbulb beside the help icon opens **Suggestions**: raise anything that annoys you, and every suggestion then carries its state — Suggested, Accepted, Scheduled, Developed, Released (with the release it went out in) or Rejected. **A rejection always comes with a reason**, because "no" with no explanation reads as nobody having read it, and that is what stops people bothering a second time. Anyone can raise one and read the whole list; only an administrator can move one along. Every help sheet also carries a "Something here could be better?" link, so the way in exists on every screen, and the form pre-fills which part of the app you were looking at. - **Companies that were never matched to Companies House can now be fixed from where you find them.** The old CRM import created a placeholder company for every organisation it could not match, and those placeholders have been sitting there ever since — no registration number, no filings, no officers. You could edit their details but there was no way to say "this is actually ACME ENERGY LIMITED" except from Admin, which only searched companies already held, so a placeholder whose real company had never been fetched was stuck for good. **Find the real company** now appears on the company screen, beside the company name on a deal (as a **Not matched** chip), and on a lead that is pointing at a placeholder. It searches Companies House itself, shows you exactly what will move — contacts, deals, leads, history, list memberships — and only merges once you confirm. The placeholder is retired and everything held against it moves across. - **A deal promoted too early can be sent back to the leads board.** Promoting was one-way: once a lead became a deal, the only ways out were Won, Lost or Merged. So a deal that turned out not to be a deal yet had to be marked **Lost** — which is untrue, and quietly filled the loss figures with deals nobody ever lost — or left sitting open pretending to be live work. **Send back to leads** is now on the deal menu. The deal leaves the pipeline with its whole history moved onto the lead, you can say why, and it is recorded as *sent back* rather than lost, so the reports count it as neither. Where the deal came from a lead in the first place that original lead is reopened, rather than leaving you with two records for one conversation. Won deals cannot be sent back — unwinding one would silently change the revenue figures. - **Dragging cards between stages now works properly with a mouse.** Both boards already supported it, but a card had to be pressed and HELD for about half a second before it came loose — right for a finger on a phone, wrong for a mouse. On Windows and in the browser you would click a card, drag, see nothing happen, and reasonably conclude the board did not support dragging at all. Cards now lift as soon as you drag them on desktop, the pointer changes to a grab hand when you hover one so you can see it is moveable, and phones and tablets keep the press-and-hold (without it, swiping to scroll the board would pick a card up instead). - **A person who changes their email address no longer becomes a stranger.** Until now a contact WAS their email address, so when someone moved employer, married, or their firm rebranded, everything behind them — mailshot history, opens and clicks, leads, deals, imported call notes — stayed behind on the dead address, and the new one started from nothing. People now have an identity of their own that survives a change of address. On the contact page, **They have a new address** records another email for the same person; from then on either address opens the same record and the full history is there. - **This also fixes an unsubscribe that could come back.** An opt-out was attached to an email address rather than to the person, so someone who unsubscribed and later changed jobs could lawfully-but-wrongly start receiving mail again. An unsubscribe now follows the person across every address they hold. - **238 people were already affected.** That many addresses in the system are held against more than one company — every one a named individual, none of them shared `info@` mailboxes — so they were being treated as separate records with separate engagement. They now resolve to one person, with each company's figures still listed separately rather than silently added together. - **Every contact now opens a page showing everything we know about them.** Contacts appear on a dozen screens and, until now, tapping one got you at best a small pop-up of opens and clicks — their leads, deals, imported call history, marketing lists, unsubscribes and where the record came from were all held but scattered, and there was nowhere to see the person whole. There is now a **contact page** with five tabs: **Overview** (who they are, the companies they sit under, flags and scores), **Email** (every send, open, click and bounce, newest first), **Pipeline** (their leads, deals and earlier Pipedrive history), **Lists** (marketing lists and unsubscribe groups) and **Data** (the Master Contacts import row, its source file, and any suppression with the reason and date). It opens from the contact lists, company contacts, Master Contacts, segments, Top Contacts, the campaign recipient list, Email Stats, deals and leads — and the old pop-up is still there as a quick peek, with a **See everything** button through to the full page. - **People we have not matched to a company can finally be opened.** Someone can engage with a mailshot without ever being added as a contact, and those rows were **dead** — every list in the app quietly disabled the tap when there was no company attached, so the one person you most wanted to look at was the one you could not. The page finds a person by their **email address** instead, so they open like anyone else, and their activity is shown under "Engagement before they were a contact". - **A person held under two companies now shows both.** The same address against two companies keeps two separate sets of opens, clicks and scores. That was invisible before — you saw whichever one you happened to arrive from. Both are now listed, with their own figures, rather than being added together into a number that matches neither. - **Directors can be linked to the contact we hold for them.** Where a Companies House officer's name matches a contact at that company, the officers list offers a **Possible contact** button through to them. Deliberately cautious: it says *possible*, it needs both forename and surname to agree (a shared surname is not evidence), and if two contacts could be the same person it offers nothing rather than guessing. - **Enquiry emails now record who they were sent TO, and keep the whole message.** Two faults, both visible on the same email. The system only ever looked at who a message was *from*, so when one of our people wrote to a prospect the prospect — sitting in the To line — was invisible, and the lead was filed against the colleague. It now reads the recipients and uses the external one as the contact. Separately, only the first 4,000 characters of an email were being stored, which is roughly a screenful: a real reply thread was cut off part-way through. The limit is now 32,000, and the field it is stored in never had the smaller limit in the first place. - **Fixed: processing a message from the enquiry inbox left it marked unread**, so the automatic check collected it again on the next run. Processing now marks it read, as the automatic check always did — and pressing **Process again** on an older message clears the backlog of ones stuck in that state. - **Fixed: replies from your own team were creating leads against colleagues.** When someone here replied to a prospect and the reply reached the enquiry mailbox, the lead was created for the *colleague* rather than the prospect they were writing to — three leads had been filed against an internal address. Two causes: an ordinary reply is neither a forward nor marked as one, so the quoted history was never read; and nothing stopped one of our own addresses becoming the contact. Now the prospect is read out of the quoted "On … wrote:" line, the colleague is recorded as the relay so the trail survives, and if no external correspondent can be found **no lead is created at all** — the message is left unprocessed for a human, which is better than filing it against ourselves. - **An enquiry from someone you already know now lands on the record you already have.** Previously an email from an existing contact created a *second* lead — and worse, when it did spot a duplicate it threw the email away, so what the person actually wrote was lost. Now: if they have an **open deal**, the email goes on that deal's timeline; if they have a **lead**, it goes on that lead (and wakes it if it was snoozed); only a genuinely new contact creates a new lead. Someone whose only history is a **won or lost deal** is treated as new business — a new lead is created, and both records are noted with a pointer to the other, so the history stays joined up. Where a contact matches several records, an open deal wins, then a live lead, then whichever was updated most recently. - **Anything added automatically now flags the record so you notice it.** A note quietly appended to a timeline is easy to miss, so the lead or deal is flagged for attention — an amber flag on the board card, a banner on the record with a **Clear** button, and the existing "needs attention" filter finds it. **Leads** now have this flag for the first time; deals already did. The side menu also lights up: **Leads** turns green when a lead is new *or* flagged, and **Sales Pipeline** turns green when a deal needs attention, so an email landing on a deal is visible from anywhere in the app. Flags are cleared by you, never automatically — an enquiry nobody has acknowledged keeps asking. - **You can now see the enquiry mailbox itself, and process a message by hand.** Admin Panel → Enquiry mailbox → **View the inbox** lists recent messages *including ones already collected*, which the automatic check can no longer see. Each row says whether this system turned it into a lead (and links to it), whether Outlook has it as read, and whether the parser would skip it. **Process now** turns a message into a lead whatever its read state — and if this system already made one, it says so and shows you that lead instead of creating a duplicate. **Hand back** marks a message unread so the *other* system collects it: the fix for the test system collecting an enquiry that belonged to live. This exists because the automatic check only ever reads unread mail, so once a message was collected there was no way to see what had happened to it. - **The side menu sections now fold away.** With the menu pinned open, tapping a section heading (Marketing, Sales, Due Diligence, Admin) collapses it, and the app remembers which ones you folded. The section containing the screen you are on always stays open. The narrow icons-only menu is unchanged — hiding icons behind a heading would only add a click. - **The Admin Panel is now organised into sections instead of one long list.** Fifteen tools sat in a flat list in the order they happened to be built, so finding anything meant reading every card. They are now grouped into **Users & access**, **Data & imports**, **Email & campaigns**, **Sales automation** and **Diagnostics & developer**, each of which folds open and shut. The panel opens as five headings, and it remembers which sections you left open. Every heading carries a summary line, so a result from inside a closed section is still visible — a completed bulk refresh, whether SendGrid connected, how many errors have been recorded — and the Diagnostics heading shows a red dot whenever anything has been logged, so you do not have to open it to find out. All fifteen tools are unchanged; only where they sit has moved. The help sheet has been brought back in step at the same time, including the three tools that were never documented. - **Company Contacts can now be filtered properly, not just searched.** A filter button beside the search box opens chips for **Validated**, **Target prospect**, company status and mail-group membership. Tap a chip again to invert it — **Not validated** is the list of contacts still to check, and **In no mail group** finds the people you have never mailed. Each mail group gets its own chip, so "who is in the Q3 campaign" is one tap. A running count of companies and contacts shows whenever anything is filtering, with **Clear all** to reset, and the filter button carries a badge of how many are active — so a narrowed list can never be mistaken for an empty one. Companies whose status has not been fetched are deliberately left out of both "Active only" and "Dissolved etc." rather than being guessed at. - **Fixed: the Dissolved badge vanished when you searched for a person.** Searching a person's name rebuilt the company row without its status, so a dissolved company looked ordinary in the results. - **You can now switch automatic enquiry collection on or off for each system.** Admin Panel → **Enquiry mailbox** shows whether collection is working, when it last ran and what it found, with a switch to pause it and a **Check now** button. This matters because the test and live systems read the *same* mailbox: whichever checks first marks the email as read, so the other never sees it — meaning testing could quietly swallow a real enquiry. Switch it off on the system you are not using. The setting applies only to the system you are on and survives a restart, and **Check now keeps working while it is paused**, so you can still pull an email in on demand while testing. The status pill shows **Mail paused** in neutral grey, never red — being switched off deliberately is not a fault. - **Promoting a lead now starts watching the company, and files it by outcome.** When you promote a lead to a deal the company is added to your watch list and put in a **Deals** group. Win the deal and it moves to **Customers**; lose it and it moves to **Lost**. A company is only ever in one of the three, so "Deals" always means live pursuits and "Customers" stays a clean list you can safely mailshot. Matching a lead to a company deliberately does none of this — matching is part of weeding, and watching every enquiry would bury the dashboard in tyre-kickers. - **You can now match a lead to a company from the lead itself.** A lead has to be matched to a company before it can become a deal, but the only thing the screen did was tell you so — there was no way to actually do it, which made Promote a dead end. There is now a **Match company** button beside that warning, and pressing **Promote** on an unmatched lead opens the same company search rather than just refusing. The search box starts filled in from what the lead already knows (its organisation, or the domain of the contact's email), so the right company is usually the first result. - **Enquiry emails no longer pick the wrong address out of a signature.** A direct email whose signature began "Email: …" was being treated as a website form submission, so the lead was filed against the address in the signature — typically a firm's generic `info@` — instead of the person who wrote in. A message is now only treated as a form when it carries several labelled fields, and the real sender is preferred over anything scraped from the body. - **The Leads menu item turns green when a new lead has come in.** Both the icon and the "Leads" label light up green whenever a lead has arrived since the start of the previous working day, so you can see at a glance that something needs attention without opening the board. On a Monday the window reaches back to Friday, so an enquiry that arrived over the weekend still shows. Hover it to see how many. The highlight clears itself as leads age out of the window — there's nothing to dismiss. - **A status light now tells you whether website enquiries are actually reaching the Leads board.** Beside the existing green **Online** pill there is a second pill for enquiry email: green **Mail** when enquiries are being collected and the last check succeeded, amber **Mail idle** when it is set up but has not run a check yet, red **Mail failing** when something is wrong, and **Mail off** when the mailbox has not been configured. Hover it for the detail — including when the last check ran and what it found — or tap it to re-check. This closes a real gap: enquiry collection had been switched off on the live server, and nothing in the app said so, so enquiries simply never appeared and everything else looked perfectly normal. Admin-only, since it reports server configuration.

  2. v1.0.2build 7 · 2026-08-19 · android, windows, web

    Enquiries route onto existing leads and deals; attention flags on leads; enquiry inbox viewer; Company Contacts filtering; Admin Panel sections

  3. v1.0.0build 2 · 2026-07-15 · android, windows

    - **Search and filter your watch list.** Once you're watching several companies, a search box and an A — Z filter appear on My Company Watch — find a company by name or number, or jump to an initial letter. - **Older PDF-only accounts are now read too.** For years a company only filed as a scanned/PDF document (with no machine-readable data), the app now reads the headline figures from the PDF automatically — using OCR for scanned pages — and shows them in the accounts summary marked "~ est." so you know they're approximate and should be checked against the source PDF. - **Accounts documents now list what's available.** The "Accounts documents" screen shows the company's accounts filings straight from Companies House, each with View and Download — instead of only showing files you'd already saved. On the web, View opens the PDF in a new tab. - **Filter your filing history.** The filing history can now be filtered by type (Accounts, Confirmation statement, Officers, and so on) using the chips at the top, and each filing has a View button as well as Download. - **Remember me.** Tick "Remember me" on sign-in and your email is filled in automatically next time. - **Sign out now returns you to the login screen** reliably. - **Sign in with Google.** The sign-in screen now has a "Continue with Google" button — one tap to sign up or sign in with your Google account, no password to remember. - **New app icon.** MyCompanyDueDil now has its own "My DueDil" icon (scales and a growth chart on navy) across every platform and the browser tab. - **Works out of the box.** Company searches and accounts now come from an always-on cloud service, so nothing needs to be running on your own computer. - **Forgot your password?** The sign-in screen now has a "Forgot password?" link that emails you a link to reset your password. - **First release.** Watch UK companies with "My Company Watch": search Companies House, add a company to your watch list, and see its status and accounts-due dates at a glance. Drill into a company for its profile, officers and filing history, download filing PDFs, and view a parsed accounts summary. - **Stop watching a company.** Remove a company from your watch list by swiping its card, using the card menu, or from the company — s own detail screen — with an Undo option if you change your mind. - **Up to ten years of accounts.** The accounts summary now shows a multi-year history (newest first) rather than just the latest two years, built by merging several filed accounts. Scroll the year columns sideways to see the full run. - **Company data is cached on your device.** A company — s profile, officers, filing history and accounts summary are now saved locally after the first view, so they load instantly next time and still show if the server is unreachable. Opening a company refreshes them in the background.