Acquira CRM is the operating layer for contacts, outreach, pipeline, calls, inbox, campaigns, and team workflow visibility.
The system combines a Next.js frontend, a Supabase-backed relational model, Twilio for SMS and voice, Airtable for lead intake, Gmail and Resend for email operations, Google Shared Drive for retained call artifacts, Gemini for transcript and summary generation, and scheduled jobs for sync, dashboard refresh, and recording processing. The current build is optimized for operator speed, visibility, and compliance-aware outreach.
Primary Runtime
crm.acquira.co Production CRM workspace used by Acquira operators and agents.Current Messaging Model
Airtable → CRM → Twilio Airtable provides initial SMS consent, the CRM initiates outreach, and Twilio owns keyword enforcement while the CRM mirrors status changes.Operational Dependency
No Laptop Dependency The live CRM runs on hosted infrastructure and scheduled services. It does not require Andi's laptop or any personal machine to stay online.2. Live Configuration Snapshot
Current production state as documented from the live UI, the current Twilio account, and the running CRM code.
| Component | Current Value | Operational Meaning |
|---|---|---|
| Primary domain | crm.acquira.co | Production CRM used by the team. |
| Operational hosting model | Cloud-hosted services only | The live CRM depends on Vercel, Supabase, Twilio, Google services, and GitHub Actions. It does not depend on a personal laptop remaining online. |
| Auth layer | Invite-only Google sign-in via NextAuth | Approved @acquira.com users enter through Google account authentication. |
| Primary datastore | Supabase Postgres | Stores contacts, activities, users, tasks, opportunities, templates, saved views, and dashboard snapshots. |
| Airtable base/table/view | Contacts / viwVZfhuIeIPDoSV3 |
Feeds new contacts and initial consent/source metadata into the CRM. |
| SMS and voice provider | Twilio | Handles SMS delivery, inbound messaging, keyword enforcement, browser-based voice calling, and Messaging Service routing. |
| Primary live SMS number | +1 206 222 0882 |
Current production marketing SMS route for outbound CRM texting. |
| Outbound voice caller ID | WA / CA / TX / FL picker |
Agents can choose from the 4 approved Acquira-owned Twilio numbers before placing a call. |
| Shared inbox | contact@acquira.com |
Shared Gmail inbox displayed in the CRM Inbox view. |
| Call recording pipeline | Twilio → Drive → Gemini → CRM | Recorded calls are exported to Shared Drive, transcribed and summarized with Gemini, linked back into CRM activity, and then deleted from Twilio after processing succeeds. |
| Dashboard mode | Snapshot-based default with manual refresh | Dashboard views load from stored snapshot state and can be refreshed on demand. |
| Saved Views | Sidebar-based, below Settings | Surfaced as permanent quick-access groups when saved items exist. |
| Current outbound SMS route | Marketing by default, customer-care when configured | AUTO prefers the customer-care service when present and safely falls back to marketing when it is not configured. |
3. Apps Used and Their Purpose
This section maps the active system stack to its actual role in the CRM.
| App / Service | Role | Current Use in CRM |
|---|---|---|
| Next.js | Application framework | Drives the CRM frontend, API routes, authenticated dashboard shell, and in-app workflows. |
| Vercel | Hosting and scheduled execution | Hosts production, handles deployments, and runs the daily Airtable fallback sync plus dashboard snapshot refresh. |
| Supabase Postgres | System of record | Stores CRM entities, activity history, templates, pipeline data, users, and reporting snapshots. |
| Airtable | Lead intake source | Provides contact records, original SMS opt-in state, marketing attribution fields, and other source metadata. |
| Twilio | Communications provider | Handles SMS, inbound webhooks, compliance keywords, Messaging Services, phone numbers, browser voice calling, and the source recording artifact before export. |
| Gmail | Inbox and email history | Powers the shared Inbox experience and contact-level email activity ingestion. |
| Google Workspace | Identity and mail platform | Supports Google sign-in and the Gmail-connected workflow around shared mailboxes. |
| Google Shared Drive | Retained file storage | Stores exported call recordings and full transcript files after processing completes. |
| Resend | Outbound email delivery | Used for application-managed outbound email sends and campaign-related delivery flows. |
| Gemini | Transcript and summary generation | Generates full call transcripts and CRM-ready call summaries from recorded call audio. |
| GitHub Actions | Protected scheduler | Triggers the recording processor every 5 minutes because Vercel Hobby does not provide 5-minute cron support. |
| Browser localStorage | User-side persistence | Persists Saved Views for Contacts and Pipeline in the current implementation. |
4. Live UI Scope
These are the main screens observed in the production CRM during the Playwright audit.
Dashboard
High-level contact and call reporting with snapshot-backed metrics, pipeline charts, agent breakdowns, and marketing-source attribution.
Contacts
Main operational table for lead review, ownership, notes, quick actions, and contact drill-down into full activity history.
Pipeline
Opportunity-oriented view with stage grouping, confidence, next steps, saved views, and grouped status review.
Calls
Browser dialer plus recent call log, with a caller-ID picker by state, corrected call results such as no answer versus true completed, and recorded-call summaries written back to CRM activity.
SMS
Full inbound and outbound SMS history, including STOP-style replies and the agent-originated first-touch messages.
Inbox
Shared mailbox view for contact@acquira.com, currently scoped to the last 3 months.
Campaigns
Bulk SMS and email campaign workspace. The live production audit currently shows no campaigns created.
Settings
Field schema, templates, pipelines, campaign setup, team setup, and the currently visible Sync sub-item.
Saved Views
Displayed permanently below Settings in the left sidebar when contact or pipeline saved views exist.
5. What the Dashboard Contains
Current observed structure from the live Sales Dashboard.
Current top-level controls
Contacts and Calls mode toggle, along with period buttons for This Week, This Month, and Custom. The observed live subtitle is On-demand pipeline, contacts, and agent performance overview and the dashboard displays the latest refresh timestamp plus coverage window for the selected range.
Current contact-mode summary cards
Total Contacts, New This Week, New This Month, and Conversion Rate. The live values observed were 26,878 total contacts, 11 new this week versus 2 last week, 21 new this month versus 16 last month, and a conversion rate of 0% with 0 closed won.
Current charts and sections
Contacts mode, the dashboard surfaces pipeline status, agent breakdowns, marketing sources, weekly trends, monthly trends, and agent performance. In Calls mode, it surfaces per-agent call counts, result breakdowns, direction mix, and call trend reporting.
Current marketing source logic
fbclid or /fb-lander/ map to Facebook, /two-lander/ maps to Google, and values containing organic, linkedin, youtube, or instagram are grouped into those source buckets.
assets/screenshots/dashboard-live-reference.png
6. Twilio Services, Active Numbers, and Current Status
Current Twilio state cross-checked against the live account and current CRM operating rules.
Airtable provides the starting consent state, Twilio owns keyword-based enforcement, and the CRM mirrors consent changes while logging inbound, outbound, and delivery-status activity on the contact record.
| Number | Primary Purpose | Current Status | Observed Webhook State |
|---|---|---|---|
+1 206 222 0882 |
Current active marketing SMS number | Attached to the live marketing route used for current outreach | Number-level SMS and voice webhooks point to crm.acquira.co |
+1 727 609 7712 |
Florida customer-care number | Approved voice caller ID and customer-care number | Number-level SMS and voice webhooks point to crm.acquira.co |
+1 469 310 9054 |
Texas customer-care number | Approved voice caller ID and customer-care number | Number-level SMS and voice webhooks point to crm.acquira.co |
+1 213 329 7459 |
California customer-care number | Approved voice caller ID and customer-care number | Number-level SMS and voice webhooks point to crm.acquira.co |
| SMS Route | Current Behavior | Backing Route | Operational Notes |
|---|---|---|---|
| Marketing | Default outbound messaging route | MG5aa646a61c355b2831b0e81d726a994e |
Marketing sends add Acquira identity and STOP language when missing. |
| Customer care | Preferred 1:1 route when configured | TWILIO_MESSAGING_SERVICE_SID_CUSTOMER_CARE |
AUTO uses this when present and falls back to marketing when missing. |
| Direct approved number send | Used when the app sends from an approved caller ID | WA / CA / TX / FL caller IDs |
When a valid approved number is selected, CRM can send directly from that number instead of a messaging service. |
Current keyword ownership
smsOptIn, and stores the compliance note on the contact.
Current keyword sets mirrored into CRM
START, UNSTOP, YES, JOINOpt-out:
OPTOUT, END, QUIT, UNSUBSCRIBE, REVOKE, STOP, STOPALL, CANCELHelp:
HELP, INFO
- Marketing SMS uses the production messaging service by default.
- Customer-care routing is app-aware and uses fallback logic when the dedicated service is unavailable.
- Twilio owns keyword enforcement while CRM owns activity history and consent mirroring.
7. Storage and Data Security
Current storage model by domain, responsibility, and effective system-of-record behavior.
CRM database
Supabase Postgres stores contacts, tasks, activities, users, opportunities, templates, saved views, dashboard snapshots, category options, pipeline metadata, and internal workflow state.
Inbound source metadata
Airtable supplies external intake fields such as contact identity, location, URL source, UTM fields, query strings, and original consent state.
Message and call delivery systems
Twilio and Gmail remain the external delivery rails. The CRM keeps the operator-facing record of what happened, when it happened, which contact it belongs to, and how call processing resolved.
Dashboard reporting
Week and month dashboard payloads are snapshotted and served from stored state to keep the dashboard fast and to align headline metrics across views.
Access control
CRM access is gated through Google sign-in. Team access is controlled inside the application, and core operational actions are tied to authenticated users.
Webhook security
Twilio SMS and voice webhooks validate the Twilio signature. Airtable and Gmail sync routes also use secrets or tokens before accepting external updates.
Secrets handling
API credentials and webhook secrets are stored in environment variables, not in the user interface. The CRM uses server-side routes to talk to Twilio, Airtable, Gmail, and Resend.
Retention and compliance
Inbound and outbound messaging activity is logged in CRM history. Recorded-call audio is exported to Shared Drive, transcript files are retained in Drive, summaries are written to CRM, and the Twilio-hosted recording is deleted after successful processing to reduce long-term storage risk.
8. End-to-End Operational Flows
These are the live process flows the CRM currently supports.
Lead intake
A website or upstream source writes contact data into Airtable. Airtable then acts as the initial source for contact creation and original SMS opt-in state.
CRM sync and ownership
The CRM syncs that lead in, creates the working contact record, preserves attribution fields such as urlSource, utmSource, and query, and then lets agents assign, update, and work the record.
First outreach
An agent sends SMS, email, or places a call. The action is stored on the contact as activity and updates the operating history for the team. Outbound SMS currently sends through the active marketing Messaging Service.
Compliance-aware follow-up
If the contact replies with messaging keywords, Twilio enforces the keyword response. The CRM mirrors the contact’s opt-in state and records the event in activity.
Pipeline progression
The team moves contacts through stages such as New Lead and Contacted, updates confidence and next steps, and uses Saved Views to keep working slices organized.
Recorded call processing
When a call is recorded, Twilio sends the recording callback, the CRM downloads the artifact on schedule, uploads the recording and transcript to Shared Drive, generates a Gemini summary, writes the summary note into CRM activity, and then deletes the Twilio-hosted recording.
- Show Airtable as the initial intake and consent source.
- Show the agent action point inside CRM.
- Show Twilio keyword enforcement and CRM activity logging.
9. Current Automation Logic
Observed automation and rule-based system behavior currently active in the CRM.
| Automation / Rule | Current Behavior | Operational Purpose |
|---|---|---|
| Airtable sync | Creates or updates contacts and mirrors key source fields into CRM records. | Reduces manual data entry and keeps intake data current. |
| Inbound unknown-number handling | Inbound SMS from an unknown number creates a contact record, enables SMS opt-in by default, and creates the starting opportunity context. | Keeps inbound conversations from being dropped when a contact does not already exist in CRM. |
| SMS consent precedence | Airtable sets the starting state; Twilio keyword events override it; CRM mirrors the latest effective state. | Preserves intake consent while still following live compliance events. |
| First outbound ownership | The first outbound email, SMS, or completed call assigns the contact to the acting user and moves the contact into the contacted lifecycle. | Keeps ownership and lifecycle progression tied to real outbound work. |
| Twilio keyword ownership | Twilio sends keyword replies; CRM logs the inbound event and updates contact consent state. | Avoids duplicate STOP or START reply behavior and keeps ownership clean. |
| SMS delivery status callbacks | Twilio delivery updates merge back into outbound SMS activity metadata and campaign recipient rows. | Preserves delivery state in the CRM timeline and campaign reporting. |
| Call result normalization | Very short Twilio completed attempts without a real human answer can be normalized to no answer. |
Improves call-log accuracy for actual agent review. |
| Dashboard snapshots | Dashboard snapshots are refreshed on a daily cadence and can also be refreshed manually from the UI. | Reduces load and prevents inconsistent top-line metrics across dashboard views. |
| Saved Views persistence | Contact and Pipeline views are persisted in local browser storage and surfaced in the left sidebar when available. | Supports repeatable working queues for operators. |
| Call recording processing | Twilio recording callbacks mark calls for processing, a protected 5-minute scheduler exports the recording, uploads files to Shared Drive, generates Gemini transcript and summary outputs, writes CRM notes, and deletes the Twilio recording after success. | Keeps recorded-call history useful in CRM while minimizing long-term Twilio storage cost. |
10. Cost Model
Current Acquira-covered software costs, platform tiers, and live rate-card references for the active CRM stack.
10A. Current Setup Pricing
Current plan pricing and live rate-card references for the CRM stack. This section focuses on pricing structure, not month-to-date spend.
| Item | Current Setup | Pricing | Notes |
|---|---|---|---|
| Vercel | Hobby |
$0.00 / mo |
Current production host for crm.acquira.co. |
| Supabase | Free |
$0.00 / mo |
Current database and auth platform for the CRM. |
| Resend | Free |
$0.00 / mo |
Current billing page shows 3,000 transactional emails / mo and 1,000 marketing contacts included. |
| Airtable | Team |
$264.00 / mo |
Current Acquira-paid shared workspace cost. |
| Google Workspace | Acquira Workspace |
covered by existing company plan |
Shared company cost rather than a CRM-specific incremental line item. |
| Twilio local numbers | 4 active US local numbers |
$1.15 / number / mo |
Current fixed monthly number cost = $4.60 / mo. |
| Twilio outbound SMS | marketing and CRM agent sends |
$0.0083 / segment |
Current live rate for US local messaging. |
| Twilio inbound SMS | contact replies and inbound messages |
$0.0083 / segment |
Current live rate for US local messaging. |
| Twilio inbound voice | received calls |
$0.0085 / min |
Current live inbound local voice rate. |
| Twilio outbound voice | agent-placed calls |
$0.0140 / min |
Current live outbound US voice rate used by the CRM. |
| Twilio call recording | live recorded-call pipeline |
$0.0025 / recorded min |
Twilio voice recording rate. Storage is free for the first 10,000 recorded minutes / mo, then $0.0005 / min / mo. |
| Gemini transcript and summary | live AI processing |
usage-based |
Current recorded-call workflow exports audio, generates transcript and summary through Gemini, saves files to Drive, and writes the summary into CRM. |
10B. Platform Limits and How to Check Them
These are the practical plan limits most relevant to the current CRM, plus the fastest way to inspect each one in its own vendor console.
| Platform | Current Limit Most Relevant to CRM | Current Status | How to Check |
|---|---|---|---|
| Vercel Hobby | 1,000,000 function invocations, 4 CPU-hrs, 360 GB-hrs memory, 100 GB fast data transfer, 1 concurrent build |
Hosting plan is Hobby |
Vercel -> Team Settings -> Billing and Usage, then project usage pages for runtime and bandwidth. |
| Supabase Free | 500 MB database, 5 GB egress, 5 GB cached egress, 1 GB storage, 50,000 MAU, 500,000 edge invocations, 200 realtime peak connections, 2,000,000 realtime messages |
0.094 / 0.5 GB DB, 1.451 / 5 GB egress, 0 / 1 GB storage |
Supabase -> Billing for plan and Usage for current consumption by metric. |
| Airtable Team | 50,000 records / base, 20 GB attachments / base, 100,000 API calls / workspace / mo, 5 req / sec / base |
46,447 / 50,000 records, 500.4 MB / 20 GB attachments, 25,965 / 100,000 API calls |
Airtable -> Workspace settings -> Database for summary; Usage tab for API and per-base metrics. |
| Resend Free | 3,000 transactional emails / mo, 100 emails / day, 1,000 marketing contacts, 1 webhook endpoint |
Free billing page observed |
Resend -> Settings -> Billing for plan; dashboard usage pages for email volume and events. |
| Twilio | usage-based rather than fixed plan quotas for SMS and voice; number count and message/call volume are the primary drivers |
4 active local numbers, 77 outbound SMS segments, 17 inbound SMS segments, 11.3667 total voice min observed this month |
Twilio Console -> Monitor -> Usage, Phone Numbers, Messaging -> Services, and Voice -> Logs. |
11. Current Operating Notes
Current app behavior that shapes how the CRM runs in production.
Daily refresh cadence
Vercel runs the daily Airtable fallback sync and dashboard snapshot refresh so the default dashboard stays fast without relying on live recomputation for every visit.
5-minute recording processor
GitHub Actions calls the protected recording cron every five minutes so recorded calls move into Drive, Gemini summarization, and CRM activity updates without waiting for a longer Vercel cron window.
SMS route guardrails
The CRM sends marketing SMS with identity and STOP language, prefers customer-care routing when configured, and safely falls back to marketing when customer-care service settings are missing.
Infrastructure independence
The production CRM keeps running if Andi's laptop is off. Hosting, database, telephony, sync, storage, and scheduled processing all run on managed services rather than a local machine.
Outbound contact lifecycle rules
Call recording path in production
12. Current Visual Asset Library
Current screenshot and diagram set available for this documentation bundle.
Login, Dashboard overview, Dashboard reference, Contacts list, Contact detail, SMS composer, Saved Views, Templates, Saved Links and Signatures, Settings references, and supporting UI captures are already stored in assets/screenshots/.
- Live UI captures
- Product-tour visuals
- Operator examples
Twilio service map, security diagram, operational flow, and automation sequence diagrams are already included and aligned to the current production CRM behavior documented in this guide.
- Architecture diagrams
- Sequence flows
- Trust boundaries