Serve Companion is a free Chrome side panel for ServeManager that shows the job you are on, posts notes from any site, and never writes to ServeManager without your review. Version 1.1.9 is in beta testing now. This is how it was built, and what ServeManager’s own API documentation changed along the way.
An earlier post, The ServeManager API is a document, not a record, covered the traps anyone integrating with ServeManager runs into. This one is about a finished, generic tool for any ServeManager account: what it does, what it refuses to do, and the three places the documentation turned out to be the whole answer.
What is Serve Companion?
A panel that sits beside ServeManager and follows you from job to job. It shows status, recipient, client, server, address, due date and attempts, and adds what the job page does not: a count of mornings, afternoons, evenings and weekends already tried, a flag on any attempt whose GPS was logged more than half a mile from the address, highlighted service instructions, a timeline, and a client update draft.
It also has a Team tab with three views – Assigned to me, Jobs I opened and Whole account – plus pinned jobs, Excel export and Google Maps routes. Every one of those can be switched off, and the whole-account view starts off.
Why does every write stop at a review step?
Because a note on the wrong job is a note on somebody’s real legal service, and ServeManager has no undo for notes. So only three things can write – a note, a status change and a logged attempt – and the last two are off until you turn them on. A note needs its job number to match exactly one job and shows you that job’s recipient and client; a status change or attempt acts on the job you have open and shows its job number and the details. Each waits for you to press confirm.
The rule is enforced twice. The panel only sends a confirmed flag from a confirm button, and the background worker refuses any write that arrives without one or without a numeric record id. Nothing writes on a schedule, on page load, or because a list was refreshed.
Notes also work away from ServeManager. From an email, select text and right-click Add selected text to a Serve Companion note, or press Alt+Shift+N. The review step is the same.
What did ServeManager’s API documentation change?
Three things, all in the ServeManager API documentation, and each one replaced something I had guessed.
- Files said Access Denied. A generated document’s
pdf_download_urlpoints at ServeManager’s API, and the documentation says to follow its 302 redirect to a signed S3 link. Opening it in a tab sends no key, so it fails. The background worker now follows the redirect with the key, stops at the headers, and opens the signed link – after Chrome asks you once for access to ServeManager’s file storage. - “Assigned to me” did not need the whole account. The jobs endpoint has a server filter that takes an employee id. Pick yourself once and the panel asks ServeManager for your jobs only, so a large account stays quick. The filter matches ServeManager’s own job filters.
- An invoice has no status field. The job list can be filtered by invoice status, so the Not invoiced list simply asks for “none” and “draft”. The invoice object itself carries amounts and dates instead, so the status shown on each row is derived: paid from a paid date or a zero balance after payment, issued from an issue date, otherwise draft.
Pages hold at most 100 jobs, and paging stops at a short page or as soon as the response’s links show no next page. The status list starts from the documentation’s defaults – On Hold, Skip Trace and Filed – and leaves Canceled out: cancelling a job belongs in ServeManager.
How does it read only what it needs?
The job you are looking at is read when you open it, and again only if the panel has been in the background for more than two minutes. Account lists are read when you press Check now, never because the panel opened; checking automatically is a setting you choose. A list you switch off – unsigned affidavits, court dates, not invoiced – is removed from the read entirely, and a switched-off feature stops asking ServeManager for anything on its own behalf.
When something looks blank, the field check reports which fields your account returns, counts per filter from a single row each, and no job details, then saves itself as a text file you can send.
What stays on your computer?
Everything it keeps. The API key is encrypted with AES-256-GCM under a browser key that cannot be exported, and it is decrypted only in the background worker. Viewed-job summaries and the optional activity log expire on a schedule you set; pins stay until you unpin them. Job data goes only to ServeManager, except what you send yourself: an address to Google Maps when you press Map, a client update to your email app when you press Email. There is no analytics and no server of mine. The details are in the privacy policy and disclaimer.
Only the ServeManager job number is ever shown. The internal record id builds links and never reaches the screen – the same identity rule as what counts as one job.
How was it tested?
Version 1.1.9, measured before packaging: 145 unit tests passing; 202 of 202 seeded mutants killed, so the tests are shown to fail when the code is wrong; 168 real-browser assertions against a mocked ServeManager; and zero axe-core violations across 22 panel, settings and help states in light and dark themes. Those numbers come from a test double, not a live account – how real ServeManager accounts differ is what the beta is for.
What is next?
The Chrome Web Store listing is in preparation, and the project page will carry the install link when it is live. Serve Companion is independent and is not affiliated with or endorsed by ServeManager. If your company needs something it does not do – a custom field, report or workflow – that kind of tool is what the rest of the legal-tech work here is.

Leave a Reply