Zenzel CRMRun your whole client billing workflow without leaving VS Code — customers, quotes, invoices, payments, and employees, all in one place. Zenzel CRM turns your editor into a lightweight business hub. Every record lives in a local database on your machine — no account, no server, no subscription. Open a module from the sidebar, and it opens right in the editor area like any other tab. What you can doCustomers — Keep a clean directory of every client: contact info, billing address, and notes, with instant search. Quotes — Build itemized quotes in seconds, track their status (draft, sent, accepted, declined), and convert an accepted quote into an invoice with one click — line items, tax, and discounts all carry over automatically. Invoices — Create polished invoices with line items, tax, and discounts calculated live as you type. Track status from draft through paid, and see the outstanding balance on every invoice at a glance. Payments — Record payments against any open invoice. Balances and statuses update automatically — no manual bookkeeping. Employees — A simple staff directory with titles, departments, and status, right alongside your client data. Export invoices and quotes your wayEvery invoice and quote can be exported as:
Time tracking, meet invoicingIf you use Zenzel Time to track your hours, Zenzel CRM can pull that data straight into billing. There are two ways in, and both bill from the same rules. Generate Invoice (all on one screen)Generate Invoice, next to New Invoice on the Invoices list, opens a single form: load a Zenzel Time backup, set the date range (a preset or an exact start and end date), and every entry that falls inside it appears in a table with the date, task, tracked vs. billable time, rate, and amount. Tick the ones you want, adjust the billing increment or the line-item layout, fill in the customer and invoice dates, and the running total updates as you go. Entries inside the range that can't be billed are still listed, greyed out and labelled — already invoiced or deleted in tracker — so an empty-looking week is never a mystery. A counter under the range says exactly how many entries fell outside it. Import Time Data (step by step)The Import Time Data... command walks the same import one prompt at a time, which is handy when you want to consider each entry on its own:
Either way, billed entries are recorded by ID, so re-running the import never bills the same time twice — and anything you skipped stays available for a later invoice. Delete the invoice and its time comes straight back, ready to bill again. Both paths create a draft invoice, so nothing is final until you review it. E-mailing invoices, quotes, and receiptsFill in your SMTP host, port, security (STARTTLS / SSL-TLS / none), username, and From address under Company Settings, then use the envelope button on any invoice, quote, or payment to send it with its PDF attached.
Your data, backed upChoose a backup folder once, and Zenzel CRM keeps a rolling set of snapshots there automatically (or on demand with a single command) — handy for syncing to a cloud drive or simply sleeping easier. Older snapshots are pruned automatically so the folder never grows out of control. Getting started
That's it — everything is stored locally and ready whenever you open VS Code. |