Blog

Introzy Engineering

How we build Introzy — architecture, tooling, and lessons from production.

20 posts
2026.10.27

Building onboarding that knows what you've already done

The setup card was still asking for a first invoice. The invoice already existed. How the checklist notices work that already happened, remembers it, and treats leaving setup as its own decision.

Jasmine Frantz · 8 min

2026.10.21

Two doors: Turnstile for people, MCP for agents

Our public forms ask whether a submission is likely abuse. Our MCP server asks who authorized an action, for which organization. How each door works in code, where signed agents fit between them, and what we're tightening next.

Zac Sheffer · 8 min

2026.10.19

What our coding agent is allowed to touch

Atlas, our coding agent, can edit code, run commands, and reach the network. It can't merge, and it never sees the GitHub credential it pushes with. The authority map, the publication gate, and the green PR that changed our supply-chain rules.

Zac Sheffer · 10 min

2026.10.15

How we chose a sandbox for our coding agent, and why we're retesting Cloudflare

How we sized the workload and scored Cloudflare, Daytona, and exe.dev to host Atlas, our coding agent. Why we shipped on exe.dev, what Cloudflare has released since, and what our retest will look at.

Zac Sheffer · 11 min

2026.9.22

MCP as the CRM's tool surface: one tool set, four kinds of callers

OAuth clients, API keys, voice agents, and in-process workers share one typed tool set with different assurance levels. Tools declare minimum assurance, role gates check the target org, and the server decides pass or fail, never the LLM.

Zac Sheffer · 6 min

2026.9.21

One intake agent, every channel: email and Slack share the same brain

Two intake pipelines drifted apart one bugfix at a time, so we converged on one agent with thin channel adapters, business rules enforced in the tools instead of the prompt, and an intent-classifier LLM we deleted. Deleting the model was the best part.

Zac Sheffer · 8 min

2026.9.18

Email Threading, CC Chains, and Calendar Sync: Inside a Zero-API Integration

The Howie integration has no API calls to Howie at all. It works because email threading, CC injection, and calendar webhooks each do exactly one job. Here is how the pieces fit, and the edge cases that bit us.

Ale Moretti · 14 min

2026.9.18

Webhooks in a multi-tenant system: resolving the right org, exactly once

Picking the wrong tenant is a data-isolation incident, not a bug. Org resolution as a ladder with a deterministic ambiguity rule, dedup keys built without provider event ids, and why we fail open, on purpose, in writing.

Zac Sheffer · 7 min

2026.9.17

Two-way CRM sync without an orchestration monolith

Integration one works as worker code; integration three is an accidental monolith. The split that fixed it: CRM choreography in platform flows, semantic mapping in our product, thin workers, and sync direction as config instead of architecture.

Zac Sheffer · 7 min

2026.9.16

When not to call the model: cost-aware triage for AI recommendations

In a production dry run on 8,600 open deals, 87 percent resolved with zero tokens and only 223 earned an agent run. Three triage layers: a zero-LLM programmatic path, trigger rules that need evidence in pairs, and a re-run gate that humans reset.

Zac Sheffer · 7 min

2026.9.15

Building the Howie Integration: CC-on-Thread Instead of an API

Howie has no partner API, no OAuth, no webhooks. The entire integration is one CC’d email address, a Nylas send, and a calendar matcher. Here is the architecture and why it is the right call.

Ale Moretti · 8 min

2026.9.15

An AI agent that can't touch the database: generate, gate, rank, persist

Kai's deal agent is a five-stage pipeline where model output never reaches the database without deterministic gates. Required-plus-nullable Zod schemas, a policy layer that trusts nothing, a cheaper model judging the first, and dedup with opinions.

Zac Sheffer · 8 min

2026.9.14

Kai Intake: LLM vs Agentic Approaches

Pass-1 scored above ~96% on Braintrust, then lost to an agentic tool loop. Real generateText + stopWhen, Slack handoff routing, mutation caps before the model, and why we deleted the intent LLM.

Guilherme Barroso · 8 min

2026.9.10

Zero CRM integration: building a sync that refuses to guess

What Zero CRM is and how we built our Zero CRM integration: a sync that fails closed, never guesses matches, and keeps referral attribution intact.

Zac Sheffer · 8 min

2026.8.28

Anatomy of a Commission Engine: Decimals, Idempotency, and a Ledger That Can't Half-Post

Commission math looks like one multiplication. Then come the tiers, the waterfalls, the recurring trails, and the invoice that already went out. Five design decisions behind Introzy's fee engine — with real code and the production bug that taught us dedup keys need a period.

Zac Sheffer · 11 min

2026.8.10

Adding Zoom to a Multi-Tenant SaaS: Meeting Recording to CRM

How Introzy turns a Zoom recording into CRM context: thin webhooks, a two-stage calendar matcher with a 15-minute window, private R2 transcripts with a 90-day TTL, and one idempotent in-app notification.

Guilherme Barroso · 7 min

2026.8.6

When an Import Fails, What Should We Automate?

Some import failures should fix themselves. Others are the system admitting it doesn't know enough to decide safely. How we think about automating failure recovery without quietly making the wrong call on someone's data.

Jasmine Frantz · 6 min

2026.8.6

Rethinking CSV Imports: From File Upload to Product Activation

Most CRM imports treat CSV parsing as the challenge. We rebuilt ours around a different idea: importing is an onboarding problem. Here's the actual pipeline: three mapping signals, an agreement gate, real confidence thresholds, and a diff that runs before a single write.

Jasmine Frantz · 9 min

2026.8.4

Ensuring AI-Generated Code Meets Your Standards

How we use version-controlled Markdown commands to keep AI-generated code quality high: the actual two-pass verification pipeline, and two real production near-misses that shaped it.

Matthew Watson · 8 min

2026.8.3

Hello World from Introzy Engineering

We're starting an engineering blog. Here's why, what we'll write about, and a full tour of the monorepo that powers Introzy.

Zac Sheffer · 7 min