Consultancies, agencies, systems integrators, and professional services firms often run on three products to run one business. One system for the sales pipeline, another for delivery and time, a third for sharing documents with subcontractors. Three logins. Three permission models. Three places where the same client record lives with a slightly different name.
The whole shape collapses into one system. Deals and delivery and activities and invoices and partners live on the same tables, share the same permissions, share the same audit log, share the same agent.
Activities, tasks, interactions — attach to any record type
Three logging concepts are first-class: activities (what happened), tasks (what needs doing), interactions (calls, emails, meetings captured against a record). Any other record type in the system — the ones the platform ships and the ones a tenant admin adds through Schema Admin — opts into being loggable by ticking a checkbox.
The moment the flag flips, that record type appears in the logging picker, its record-detail modal grows a timeline panel, and the agent starts surfacing the linked records. The mechanism is configuration. Adding a new record type takes no code.
For a services org this is what lets a projects entity fit the way you work — time entries logged against phases, tasks assigned to sub-workstreams, interactions logged against the delivery lead. The shape is yours to configure.
Meetings transcribed into the project record
The in-browser meeting recorder captures a call, transcribes it, summarises it, and lands the result as an interaction on the project — with a structured TL;DR, Decisions, Action items, Discussion notes block. The recorder runs inside the browser tab that starts the meeting.
Audio is sensitive data that deserves an explicit retention policy. Three retention modes ship out of the box, chosen per-tenant in the uploads settings: delete after transcription (the platform default — audio is gone the moment the transcript lands), retain for N days (bounded 1–3650, useful for dispute evidence or short compliance windows), and keep indefinitely (an explicit legal-hold shape for regulated engagements). A dedicated sweeper wakes every minute regardless of user activity, purges audio whose window has elapsed, and reports its heartbeat on the operations console.
The transcript feeds the agent’s readable upload library. The agent searches inside the transcript with real time offsets — a citation carries the moment (“at 08:42 in the acme-discovery call”) the same way a document hit carries a page number. Every retrieval is filtered by the same visibility gate every other surface applies.
One deal entity, unified — pipeline through delivery
Services orgs waste a startling amount of time reconciling leads that became opportunities into deals that became engagements into projects that became invoices. Each stage is a different table in most systems, with a different owner, a different permission model, and a different set of custom fields.
Actionary ships one deals entity with lifecycle states. A deal moves through the states you configure — qualified → proposal → signed → in delivery → closed — without changing its identity or its history. Activities logged against it in the qualification phase stay attached in the delivery phase. Interactions with the buyer in the sales phase stay attached when the account manager takes over.
The entity substrate is what makes this work. Entities, fields, and lifecycle states live in configuration. A tenant admin renames the states, reorders them, or adds a new one through Schema Admin and every surface — the app, the admin API, the agent tool catalogue, the agent itself — picks it up from the same schema definitions.
A partner portal for subcontractors and referrers
Services orgs run on partners — subcontractors delivering the technical build, referrers sourcing the pipeline, associates picking up overflow. Every one of them needs a scoped view: what they submitted, what they sourced, what they can download.
The public partner portal at portal.{base}/<tenant>/partner covers all three. Partners sign in via a magic-link email and see per-partner dashboards: their submissions, the deals they sourced (attributed to them on the deal record), and the resources shared with them. Sharing an asset — a scoping document, a rate card, a signed SoW, anything in the library — is a single share against that partner on the existing library. Same library, same access primitive, same audit trail as every internal share.
The partner cookie is scoped to the partner portal host; the admin app cookie is scoped to the admin app host. Neither can present at the other’s domain — browser same-origin policy enforces the boundary. Two cookie scopes, two permission models, one audit trail. Revoking a partner’s access is a single soft-revoke on the grant.
Activity billing — activity records become invoice items
Time and expenses logged against a project need to reach the customer. The workflow engine makes this a durable pipeline. Activity records selected for billing become invoice items on a draft invoice; the accounts-receivable pipeline lands the invoice as a rendered PDF against the customer template you chose.
Invoice totals — subtotal, tax, amount paid, amount outstanding — are real columns kept in sync automatically with every line-item and payment write, so the number a customer sees always matches the ledger. Payment allocations are flexible on the target: one bank deposit splits across invoices, or lands on a project before any invoice exists, or lands on whatever record type the tenant uses for their receivables.
Invoice templates ship with four variants — Standard, Totals only, Hours-based, Units-based — each cloneable through a Duplicate button. Per-customer defaults live on the customer record. Every new invoice for that customer auto-fills the right template automatically; the per-invoice picker overrides for one-offs.
The takeaway
A services org gets what it needs from one substrate: a configurable entity layer that models the projects you actually run, activities and tasks that attach to any record type by a checkbox, meeting transcription per project with tenant-controlled audio retention, one deal entity that carries a record from pipeline through delivery, a partner portal that costs no additional access-control system to administer, and an activity-to-invoice pipeline built on the same durable primitives as everything else.
One substrate. One audit log. One agent.