A tech reference covering how Lorikeet plugs into HubSpot, how we'd integrate with Acumatica's per-instance deployment, and how we handle proprietary systems. Specific where we know specifics, honest about what depends on your environment.
Lorikeet is the AI brain. It doesn't warehouse your data, replicate your config, or replace your systems of record. It calls into them through a tool framework: every external API becomes a callable tool the AI agent can use during a conversation, with read and write paths separated.
Where conversations live, get tagged, get routed, get closed. Lorikeet writes into your ticketing system as a first-class agent — read transcripts in, write replies and metadata out.
What grounds the agent's answers. KB articles plus scrapers against public docs plus retrieval against any internal source you expose. Source citations included by default.
What the agent does on the customer's behalf — lookups, configuration changes, transactions. Each external API wrapped as a tool. Read-only first; write actions gated behind explicit confirmation steps.
We follow a deliberate sequence on every integration: read-only first, write-with-guardrails second, autonomous action last. This keeps risk low while compounding value. It's the pattern that's worked across regulated subscribers in financial services, healthcare, and payroll.
We have an established HubSpot integration running in production across multiple subscribers. This is not a same-day connector, but it is a known shape — we know what we need, what to ask for, and where the friction points are.
Val flagged the deployment topology as the thing past vendors have tripped on: Acumatica is single-tenanted, one EC2 instance per customer, with no inter-instance awareness. Vendors that assume multi-tenant SaaS end up "thinking they're deployed across thousands of unique sites." Our chat widget design avoids this entirely.
The Lorikeet chat widget is an embedded iframe identified by a single public_key parameter passed to the loader. That key maps to exactly one subscriber in our database. The widget doesn't care about the origin domain, hostname, or which server instance it's running on.
public_key. Lorikeet treats them as a single tenant — we won't see "thousands of unique sites", we see one subscriber regardless of which instance the chat was opened from.The only scenario you'd want multiple public keys is if you wanted separation for different brands or different reporting buckets — not because of the deployment topology.
The chat assistant in product. Iframe widget, same snippet across all instances. Sarah and Val flagged this as a high-priority capability.
Screen ID, URL, user role, tenant ID, and any role-based context passed to the widget on initialisation or via JWT claims. Cuts the agent's "what page are you on" ask to zero.
The agent calls Acumatica APIs to fetch configuration state, employee data, pay run status. Each wrapped as a tool. Read-only.
L2 / L3 actions like entitlement adjustments, super reversals, employee updates. Always with confirmation gates. Always auditable.
For an authenticated app like Acumatica, we'd recommend trusted mode: Acumatica generates a JWT with the customer's claims (user ID, tenant ID, role, screen context) and passes it to the widget on init. We verify the signature against a shared secret. This gives the agent everything it needs to ground answers in the right customer's data without the customer needing to identify themselves in chat.
Anonymous mode also works and is fine for unauthenticated surfaces, but for in-product chat trusted mode is the right pattern.
Val flagged that a meaningful chunk of MYOB's operational data lives outside HubSpot — Snowflake tables, telemetry, configuration databases. The honest answer: this is where finished products tend to fall over and where we tend to win. It's also where shape varies most between customers.
For any data source that isn't HubSpot or Acumatica, the integration shape is the same:
We don't replicate or warehouse. The source system stays the source of truth. If a customer's pay configuration changes in Acumatica, the next agent query reads the new state.
Consolidated list, in priority order. We'll come prepared to discuss each — answers shape the spike plan.
Companion to this playbook: the live user journey running against your real Acumatica tickets. Happy to walk through both together.
See the user journey Book a walkthrough