{
  "product": "Obriym CRM",
  "description": "Machine-readable public roadmap for AI agents and integrations. Reflects the current development plan and is updated with each sprint.",
  "url": "https://obriym-crm.com/roadmap.json",
  "changelog": "https://obriym-crm.com/changelog.json",
  "lastUpdated": "2026-06-07",
  "status": "active",
  "updateFrequency": "weekly",
  "currentFocus": "Prom.ua reverse status sync, AI-agent discoverability, paid billing activation after product stabilization",
  "shipped": {
    "crm": [
      "Leads with next-action tracking, stale detection, lead scoring v2, bulk actions, CSV import",
      "Contacts and Companies with 360° cards, merge/deduplication, CSV import/export",
      "Deals pipeline: kanban drag-and-drop, stage WIP limits, deal products with margin, analytics view",
      "Activities: tasks, calls, meetings, emails, notes, recurring, @mention notifications",
      "Customers & Retention: health score (healthy/at_risk/churned), lifetime value, segmentation",
      "CRM Dashboard: pipeline metrics, funnel chart, revenue forecast, team activity, goals",
      "Reports: conversion by source, pipeline velocity, team performance, revenue trend",
      "Global search ⌘K: leads, contacts, companies, deals",
      "Record attachments: Vercel Blob upload for leads, deals, contacts, companies",
      "Audit log with full mutation trail and page /admin/audit"
    ],
    "ecommerce": [
      "Product catalog: brands, categories, bundles, Vercel Blob images, drag-to-sort",
      "Inventory tracking with warehouse support and adjustment ledger",
      "Orders: full lifecycle (pending→delivered), payments, shipments, returns/refunds",
      "Documents: print-to-PDF invoices, delivery notes, and deal proposals with workspace requisites",
      "Storefront customer sync with address book",
      "Order status email notifications via react-email templates"
    ],
    "integrations": [
      "Public REST API /api/v1 with OpenAPI 3.1 and Scalar UI at /api-docs",
      "Scoped Bearer tokens: 18 scopes across products, orders, customers, leads, inventory, payments, shipments, returns",
      "Idempotent order and lead intake with DB-backed conflict detection",
      "JS lead widget: <script> embed, iframe, honeypot, rate limit 10 req/min, origin allowlist",
      "WooCommerce webhook adapter: orders + customers, HMAC-SHA256 signature",
      "Shopify webhook adapter: orders/create,updated,cancelled,fulfilled,paid + customers",
      "Nova Poshta adapter: POST /api/v1/adapters/nova_poshta/{id}/ttn and /tracking — backend TTN creation + status sync via Nova Poshta API v2; in-CRM UI button is next",
      "LiqPay payment callback: base64 SHA1 signature verification, auto-upsert crm_order_payments, update order status",
      "WayForPay payment callback: merchantSignature HMAC-MD5 verification, auto-upsert crm_order_payments, update order status",
      "Payment adapter sandbox validation in Settings: signed LiqPay/WayForPay test payload generation with local signature verification",
      "Prom.ua order import: POST /api/v1/adapters/prom/{id}/orders/import — normalized import for external polling workers",
      "Telegram lead-capture adapter: Bot API webhook with secret token verification, text/contact-share lead intake, and bot confirmation reply",
      "Shipment tracking links: Nova Poshta TTN chip with direct link to novaposhta.ua/tracking in order detail",
      "Platform adapter setup guides in Settings → Developers: readiness notes, credential purpose, step-by-step for all 6 adapters",
      "Outbound webhooks: HMAC-SHA256 signed, 7 event types (deal.won, lead.converted, order.delivered, etc.)",
      "GET /api/v1/products filters: brandId, minPrice, maxPrice, inStock, sort",
      "GET /api/v1/categories/{id} with direct children"
    ],
    "platform": [
      "Better Auth: workspace organizations, 2FA (TOTP), active session management",
      "Workspace data export (GDPR ZIP), soft deletion with 30-day retention",
      "Daily email digest with frequency preferences (daily/weekly/never)",
      "In-app notifications with @mention support",
      "Stagnation detection: deal/lead alerts to assignees",
      "Pricing preparation: Free plan enforced limits, Settings Plan & Usage, planned Team/Scale prices",
      "AI-friendly: llms.txt, ai-plugin.json, OpenAPI WebAPI JSON-LD, robots.txt allow"
    ],
    "i18n": [
      "next-intl with uk (default) and en locales, localePrefix as-needed",
      "All public pages localized: landing, features, pricing, privacy, terms, auth",
      "hreflang alternates for SEO"
    ]
  },
  "inProgress": [],
  "planned": {
    "nova_poshta_order_ui": {
      "title": "Nova Poshta: in-CRM TTN button and auto-sync",
      "priority": "critical",
      "description": "Create TTN button in order detail (pre-fills recipient name/phone/city from order), sender warehouse selector loaded from Nova Poshta API, 15-min cron for automatic shipment status sync.",
      "requiredBy": "Ukrainian e-commerce market",
      "estimatedSprint": "Q3 2026"
    },
    "prom_status_sync": {
      "title": "Prom.ua reverse status sync",
      "priority": "high",
      "description": "CRM order status change → API call to Prom.ua to update order status on the marketplace. Closes the bi-directional sync loop for the Prom adapter.",
      "estimatedSprint": "Q3 2026"
    },
    "sprint_ai1_changelog_roadmap": {
      "title": "Public changelog and roadmap pages",
      "priority": "high",
      "description": "Human-readable /roadmap and /changelog pages sourced from roadmap.json and changelog.json. Updated with every sprint. Signals active development to AI agents and users.",
      "estimatedSprint": "Q3 2026"
    },
    "sprint_ai2_llms_expansion": {
      "title": "Expanded AI discovery layer",
      "priority": "high",
      "description": "Enhanced llms.txt with agent onboarding guide, changelog link, roadmap link, MCP server announcement. /for-agents section on /features page. JSON-LD update.",
      "estimatedSprint": "Q3 2026"
    },
    "sprint_ai3_mcp_server": {
      "title": "MCP Server for AI agents",
      "priority": "high",
      "description": "Model Context Protocol server at /api/mcp. Setup tools: configure_pipeline, set_lead_sources, invite_member, generate_api_token, configure_adapter. Operation tools: search_leads, create_lead, update_lead, search_deals, get_orders, update_order_status, create_activity. Auth: same Bearer token as Public API. Enables Claude Code and other agents to configure and operate CRM programmatically.",
      "estimatedSprint": "Q3-Q4 2026"
    },
    "sprint_ai4_provisioning": {
      "title": "Programmatic workspace provisioning for AI agents",
      "priority": "medium",
      "description": "POST /api/v1/agent/provision endpoint: agent provides email + workspace name, gets back API token immediately with limited scope (configure + read-only) before email verification. Full access after verification via webhook callback. Enables Claude Code to register a new client workspace without a human browser session.",
      "estimatedSprint": "Q4 2026"
    },
    "sprint_ai5_manager": {
      "title": "AI Manager (Claude-powered workspace agent)",
      "priority": "medium",
      "description": "Built-in Claude claude-sonnet-4-6 agent with tool use. Read pipeline state, create leads/deals/activities, analyze stale records. Audit trail with actorType=ai. Workspace-scoped, rate limited 50 req/day.",
      "estimatedSprint": "Q4 2026"
    },
    "custom_fields": {
      "title": "Custom fields for leads, contacts, companies, deals",
      "priority": "medium",
      "description": "Owner-defined fields per entity type (text, number, date, select, boolean). Values stored separately. Shown in detail pages and create/edit forms. CSV export columns.",
      "estimatedSprint": "Q4 2026"
    },
    "telegram_inbox": {
      "title": "Telegram unified inbox",
      "priority": "medium",
      "description": "Two-way Telegram messaging in CRM. Message from client → conversation thread in CRM. Manager replies from CRM. Bot reply confirms lead receipt.",
      "estimatedSprint": "Q4 2026"
    },
    "product_variants": {
      "title": "Product variants (color, size, SKU per variant)",
      "priority": "medium",
      "description": "Variant groups with individual stock, price, and SKU per variant. Used in order line items and catalog display.",
      "estimatedSprint": "Q1 2027"
    },
    "customer_portal": {
      "title": "Customer portal (headless buyer cabinet)",
      "priority": "low",
      "description": "Server-to-server API for buyer cabinet: order history, profile, addresses. Design document required first. Browser never holds CRM Bearer token.",
      "estimatedSprint": "Q1 2027"
    },
    "gmail_sync": {
      "title": "Gmail read-only sync",
      "priority": "low",
      "description": "OAuth sync Gmail threads by contact email → activity timeline entries of type email.",
      "estimatedSprint": "Q1 2027"
    },
    "paid_billing_activation": {
      "title": "Paid billing activation",
      "priority": "medium",
      "description": "Dedicated subscription schema, platform-owner plan override, Stripe or invoice flow, and automated upgrade path for Team and Scale after the first production version is stable.",
      "estimatedSprint": "Post-stabilization 2026"
    }
  },
  "integrations": {
    "available": [
      "woocommerce",
      "shopify",
      "nova_poshta",
      "liqpay",
      "wayforpay",
      "prom",
      "telegram"
    ],
    "inProgress": [],
    "planned": ["rozetka", "zapier", "gmail"]
  },
  "api": {
    "baseUrl": "https://obriym-crm.com/api/v1",
    "spec": "https://obriym-crm.com/api/v1/openapi.json",
    "docs": "https://obriym-crm.com/api-docs",
    "mcp": "https://obriym-crm.com/api/mcp (planned Q3-Q4 2026)"
  }
}
