Changelog

What we've shipped.

RSS

Bulk Actions, Multi-Language & Polish

Select a bunch of records and do things to them. Also: the entire UI now speaks your language.

What's new

  • Bulk actions — Select records in list or kanban view (checkbox or Shift+click), then bulk delete, move to a stage, set a field value, or assign an owner. Confirmation dialogs keep you from nuking things by accident.
  • Multi-language support — Every UI string is now translatable. We ship with English and Norwegian, with more languages coming. The system uses Tolgee under the hood.
  • Record hover cards — Hover over a related record link anywhere in the app to see a quick preview without leaving the page.
  • Ingest improvements — Ingested records now auto-assign to the default stage. System fields like name and stage can be set via the ingest payload. Log pages show expandable details for each ingested record.
  • Realtime via SSE — We migrated from WebSockets to Server-Sent Events. Same live updates, better compatibility with proxies and load balancers.

Order Management & Lost Reasons

Two additions for teams that track deals through to revenue: a proper order management setup, and a way to learn from the deals that didn't close.

What's new

  • Order management toggle — Enable order management from workspace settings. A setup wizard creates the entity types and permissions you need in one click — no manual config.
  • Orders on deals — When order management is on, deal detail pages show attached orders and the stage transition dialog lets you create an order right when a deal closes.
  • Lost reasons — Define the reasons deals get lost (budget, timing, competitor, etc.) in settings. When you mark a deal as lost, you pick a reason. A banner on the deal page shows why it was lost.
  • Stats across entities — Dashboard panels can now pull in fields from related entities. Sum order revenue grouped by deal stage, count contacts by company industry — queries can cross entity boundaries via JOINs.

Forms & Lead Capture

Build forms, embed them anywhere, and have submissions turn into CRM records automatically. No Zapier, no copy-pasting, no "check the Google Sheet."

What's new

  • Form builder — Drag-and-drop blocks onto a canvas, configure each field, preview the result. Map form fields to your CRM fields and you're done.
  • Conditional blocks — Show or hide form blocks based on previous answers. Build branching forms without a separate logic tool.
  • Public forms — Every form gets a public URL. Share it, link to it, or embed it in your site with an iframe. No login required for respondents.
  • Submissions → records — When someone fills out a form, Vigdis creates or updates a record automatically. Same upsert logic as ingest endpoints, but with a UI your marketing team can actually use.
  • Form permissions — New can_manage_forms permission so you can control who builds and edits forms without giving them full admin access.

Comments & Mentions

You can now leave comments on any record and @mention teammates to loop them in.

What's new

  • Comments on records — Add comments to any contact, company, or deal. Comments show up in the activity timeline so you always have context.
  • @mentions — Type @ in a comment to mention a teammate. They'll get a notification with a direct link to the record.
  • Display names in mentions — The mention input shows display names so you know who you're tagging.
  • Notification links — Clicking a mention notification takes you straight to the record and comment.

Support Inbox, Ingest Endpoints & API Keys

Your CRM now has a shared inbox, webhook-powered data ingestion, and a proper REST API for building on top of.

What's new

  • Support inbox — BCC your Vigdis address on any email and it shows up as a conversation thread on the contact's record. Reply from Vigdis and the conversation stays in one place.
  • Ingest endpoints — Create secret-URL endpoints that accept JSON payloads and upsert records automatically. Hook up a form, a Zapier trigger, or anything that can POST JSON.
  • API keys — Generate Bearer tokens with optional scope restrictions. Use them for scripts, integrations, or anything that needs programmatic access.
  • Developer docs — Full OpenAPI spec with an interactive API reference at /developers. Every endpoint documented with request/response schemas.

Saved Views, Duplicate Detection & Stats

Filter, find duplicates, and build dashboards — three features that turn a contact list into something you can actually work with.

What's new

  • Saved views — Filter and sort any entity list, then save it as a named view. Share views with your team or keep them private. Switch between views instantly.
  • Duplicate detection — We flag potential duplicates based on email, phone, or name similarity. Review matches side-by-side and merge them with one click — fields, activity, and relationships all get combined.
  • Stats dashboard — Build custom dashboards with panels that aggregate your data. Count deals by stage, sum revenue by month, or track any metric you care about. Panels update live.
  • Unique fields — Mark fields like email or deal name as unique. We'll block duplicates at creation time so you don't have to clean them up later.

Server-Side Tracking & Keyboard Shortcuts

Two big additions: fire conversion events to Google Analytics and Meta when deals change stages, and navigate the entire app without touching your mouse.

What's new

  • Server-side tracking — Connect Google Analytics 4, Meta Conversions API, or a custom webhook. When a deal moves stages, we fire the event server-side — no client-side scripts, no ad blockers to worry about.
  • Field mapping — Map CRM fields to tracking parameters. Send deal value, contact email (hashed for privacy), or any custom field alongside your events.
  • Keyboard shortcuts — Navigate records with j/k, open with Enter, go back with Escape. Create new records with n, search with /. The full list is in the ? overlay.
  • Live timestamps — All "time ago" labels across the app now update in real time. No more stale "2 minutes ago" that's actually been sitting there for an hour.

Deal Pipeline & Kanban Board

Deals now have a proper pipeline with drag-and-drop kanban. Set up stages, move deals through them, and see where everything stands at a glance.

What's new

  • Deal stages — Define your own pipeline stages with custom names and colors. Reorder them however you like.
  • Kanban board — Drag deals between stages. Cards show the key info — value, contact, how long they've been sitting there.
  • Attempt tracking — Mark stages as "attempt-tracked" to log outreach attempts. See how many calls or emails it took to move a deal forward.
  • Stage transitions — Move deals between stages from the detail page or the kanban. The activity log captures every transition.
  • Order line items — Attach line items to deals for proper order tracking with quantities and amounts.