Skip to content

Universal Zadarma integration for Twenty CRM — product strategy & roadmap #72

Description

@Nik1125

Why

Twenty Apps graduated to production. Goal: turn this bespoke Algeness integration into the universal, official-quality Zadarma integration for Twenty CRM — and a credible partnership/acquisition target for Zadarma.

Headline insight: the app is already far more universal than it looks. Most Algeness-specific behaviour lives in n8n (naming, SMS classifier, templates), not in app code. The in-app coupling is minimal and mostly optional — so the cleanup is smaller than it first appears.

Acquisition vs partnership — realistic framing

Acquisition is a north star, not a direct target. A small integration alone does not trigger a buyout. Realistic near-term win: official partnership with Zadarma (recommended integration, co-marketing, revenue-share, roadmap access). Acquisition becomes plausible only after real traction + a premium feature Zadarma would rather buy than build (SMS messenger, click-to-call, generic AI).

Universal core (keep / strengthen)

Needed by every Zadarma + Twenty user:

  • Call/SMS ingest (webhooks) → callLog / smsLog, auto-linked to Person
  • Phone→Person matching (last-9-digit, 3-pass)
  • Transcripts + recordings (link-only, GDPR)
  • Send-SMS from Person panel
  • Sync-calls (history pull), orphan-rescan (data-integrity repair)

In-app coupling to strip / generalize

  • Retell hardcoded (AI_EXTENSIONS, callerType=AI, aiCost, correlationId) → optional AI layer, silent when AI_EXTENSIONS empty. /call-enrichment is already vendor-agnostic.
  • TeamSale sync → keep optional (Zadarma's own CRM — a plus for acquisition, not a minus).
  • Naming conventions / SMS-template enums → already n8n-side, not in app. OK.

Gaps to product-quality

Gap Action
Reliability: uncaught throw → HTTP 500 (15 handlers) try/catch all handlers → 200 {ok:false}
Test coverage vitest on HMAC verify, phone-match 3-pass, webhook parse (all payload shapes)
Click-to-call (missing) Zadarma /v1/request/callback/ — universal killer feature
Docs setup-guide for generic user, webhook troubleshooting
Distribution Twenty Marketplace + Zadarma integrations directory

Roadmap

Phase 1 — Universal core (clean public app)

  • Fork to separate clean project; Algeness → private overlay
  • Retell/Algeness specificity → optional layer (AI off by default)
  • try/catch all handlers (500 → 200 ok:false)
  • Tests on core (phone-match, HMAC, webhook parse)
  • README + setup-guide for generic user
  • Twenty Marketplace publish

Phase 2 — Distribution + partnership

  • Submit to Zadarma integrations directory
  • Submit to Twenty featured apps
  • Collect installs / feedback
  • Approach Zadarma with traction → official partnership talks

Phase 3 — Premium (path to acquisition)

  • SMS messenger (threaded, per-Person + global inbox — after FC 2.20 regression)
  • Click-to-call
  • Generic AI analysis (any vendor — premium tier)
  • With traction + premium → acquisition talks

Premium differentiators (what would actually attract Zadarma)

  1. SMS messenger — threaded two-way SMS in a Talqui-style window. Fills a gap Twenty doesn't cover natively. Feasibility: Twenty FC is sandboxed iframe (#22588) — rebuild after Phase-2 FC regression; the model is maturing (runAgent, KV-store, i18n).
  2. Click-to-call from CRM.
  3. Generic AI analysis (not Retell-locked).

Full reference

docs/UNIVERSAL-PRODUCT-STRATEGY.md — companion doc with full depth (EN TL;DR + Russian working text + acquisition framing + conventions for the universal fork). Lives on the universal-core branch.

Discussion

This is the anchor issue for the universal-product direction. Separate branch + deep cleanup to follow. Input wanted on:

  • Scope of the Phase 1 cut (what's truly core vs optional)
  • Messenger feasibility priorities (which FC-2.20 blockers first)
  • Partnership outreach strategy (who at Zadarma, what to lead with)

Related: #71 (Twenty 2.6→2.20 upgrade — the platform foundation this builds on).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions