← All blocks

Featured integration story

integrations · story-with-live-sync · integrations-featured

npx shadcn@latest add @plus-ui/integrations-featured

Default content

{
  "eyebrow": "Integrations",
  "title": "Tessaly fits the stack you already run",
  "description": "Send events from any app, pull revenue from billing, push cohorts back to the tools your team works in. 21 integrations, all included on every plan.",
  "categories": [
    {
      "id": "sources",
      "name": "Event sources"
    },
    {
      "id": "revenue",
      "name": "Revenue"
    },
    {
      "id": "warehouse",
      "name": "Warehouse & export"
    },
    {
      "id": "workflow",
      "name": "Team workflow"
    },
    {
      "id": "engineering",
      "name": "Engineering"
    },
    {
      "id": "security",
      "name": "Security & admin"
    }
  ],
  "integrations": [
    {
      "name": "Browser SDK",
      "category": "sources",
      "icon": "globe",
      "summary": "Page views, clicks and custom events from any web app, in 4 kB of JavaScript.",
      "href": "#"
    },
    {
      "name": "Mobile SDK",
      "category": "sources",
      "icon": "activity",
      "summary": "Sessions, screens and app versions from iOS and Android, batched to save battery.",
      "href": "#"
    },
    {
      "name": "Server SDK",
      "category": "sources",
      "icon": "terminal",
      "summary": "Track backend events from Node, Python, Go or Ruby with the same event schema.",
      "href": "#"
    },
    {
      "name": "Event webhooks",
      "category": "sources",
      "icon": "workflow",
      "summary": "POST JSON from any system and Tessaly maps it to users and accounts.",
      "href": "#"
    },
    {
      "name": "CSV import",
      "category": "sources",
      "icon": "layers",
      "summary": "Backfill years of history from a spreadsheet export in one upload.",
      "href": "#"
    },
    {
      "name": "Tallybird",
      "category": "revenue",
      "brand": "tallybird",
      "summary": "Subscriptions, upgrades and churn flow in, so retention reads in dollars.",
      "badge": "Featured",
      "href": "#"
    },
    {
      "name": "Invoice sync",
      "category": "revenue",
      "icon": "database",
      "summary": "Attach paid, failed and refunded invoices to the accounts that raised them.",
      "href": "#"
    },
    {
      "name": "Plan catalogue",
      "category": "revenue",
      "icon": "boxes",
      "summary": "Keep plan names and prices in step with billing for every revenue chart.",
      "href": "#"
    },
    {
      "name": "Warehouse sync",
      "category": "warehouse",
      "icon": "database",
      "summary": "Two-way sync with your SQL warehouse on a five-minute schedule.",
      "href": "#"
    },
    {
      "name": "Object storage export",
      "category": "warehouse",
      "icon": "cloud",
      "summary": "Nightly Parquet files of raw events to your own storage bucket.",
      "href": "#"
    },
    {
      "name": "Cohort sync",
      "category": "warehouse",
      "icon": "users",
      "summary": "Push any saved cohort to your CRM or email tool as a live audience.",
      "badge": "New",
      "href": "#"
    },
    {
      "name": "BI connector",
      "category": "warehouse",
      "icon": "chart",
      "summary": "Query Tessaly metrics from your dashboard tool over a standard SQL endpoint.",
      "href": "#"
    },
    {
      "name": "Wisplight",
      "category": "workflow",
      "brand": "wisplight",
      "summary": "Ask a question in plain words and get the chart, with the query beside it.",
      "badge": "Beta",
      "href": "#"
    },
    {
      "name": "Team chat alerts",
      "category": "workflow",
      "icon": "bell",
      "summary": "Post a message when a metric crosses a threshold or a cohort shifts.",
      "href": "#"
    },
    {
      "name": "Weekly email digest",
      "category": "workflow",
      "icon": "clock",
      "summary": "Monday morning summary of the numbers that moved, for anyone on the team.",
      "href": "#"
    },
    {
      "name": "Rivetlane",
      "category": "engineering",
      "brand": "rivetlane",
      "summary": "Mark every deploy on your charts and compare metrics before and after.",
      "href": "#"
    },
    {
      "name": "Feature flags",
      "category": "engineering",
      "icon": "branch",
      "summary": "Split any report by flag variant to see what a rollout did to retention.",
      "href": "#"
    },
    {
      "name": "Experiments",
      "category": "engineering",
      "icon": "sparkles",
      "summary": "Read A/B results with guardrail metrics and sample-size checks built in.",
      "href": "#"
    },
    {
      "name": "SAML single sign-on",
      "category": "security",
      "icon": "key",
      "summary": "Sign in through your identity provider and enforce it for the workspace.",
      "href": "#"
    },
    {
      "name": "SCIM provisioning",
      "category": "security",
      "icon": "users",
      "summary": "Add and remove seats automatically as people join or leave your directory.",
      "href": "#"
    },
    {
      "name": "Audit log stream",
      "category": "security",
      "icon": "shield",
      "summary": "Stream every admin action to your security tooling in real time.",
      "href": "#"
    }
  ],
  "search": {
    "label": "Search integrations",
    "placeholder": "Search 21 integrations",
    "allLabel": "All integrations",
    "countLabel": "integrations",
    "emptyText": "Nothing matches that search yet. Tell us what you use and we will look at it."
  },
  "featured": {
    "brand": "tallybird",
    "eyebrow": "Featured integration",
    "title": "Retention, measured in revenue",
    "description": "Connect Tallybird and every subscription event lands on the account that caused it. Cohorts show dollars kept, funnels show dollars lost, and expansion stops hiding in the totals.",
    "stepsLabel": "Live in three steps",
    "steps": [
      {
        "title": "Connect your Tallybird workspace",
        "text": "Authorise read-only access from Settings → Integrations. No engineering time, no API keys to rotate."
      },
      {
        "title": "Match customers to accounts",
        "text": "Tessaly pairs billing customers with product accounts by email domain and lets you fix the rest by hand."
      },
      {
        "title": "Backfill and keep syncing",
        "text": "Two years of invoices import in minutes, then new events stream in within seconds of the charge."
      }
    ],
    "panel": {
      "from": "tallybird",
      "to": "tessaly",
      "status": "Live",
      "updated": "Synced 40 s ago",
      "stats": [
        {
          "label": "Subscriptions",
          "value": "4,812"
        },
        {
          "label": "MRR matched",
          "value": "$412.6k"
        },
        {
          "label": "Unmatched",
          "value": "0.4%"
        }
      ],
      "logLabel": "Latest events",
      "events": [
        {
          "time": "09:41",
          "name": "Plan upgraded",
          "detail": "Ostrelo · Growth → Scale",
          "value": "+$1,240",
          "status": "positive"
        },
        {
          "time": "09:38",
          "name": "Subscription started",
          "detail": "Quillon · Growth, annual",
          "value": "+$5,880",
          "status": "positive"
        },
        {
          "time": "09:31",
          "name": "Payment retried",
          "detail": "Talvik · card declined, retry 2 of 3",
          "value": "$420",
          "status": "neutral"
        },
        {
          "time": "09:12",
          "name": "Seats reduced",
          "detail": "Mosswell · 24 → 18 seats",
          "value": "−$180",
          "status": "negative"
        }
      ]
    },
    "action": {
      "label": "Connect Tallybird",
      "href": "#",
      "variant": "primary"
    },
    "secondaryAction": {
      "label": "Read the setup guide",
      "href": "#",
      "variant": "secondary"
    }
  },
  "request": {
    "text": "Missing a tool your team relies on? We build the most requested integrations every quarter.",
    "action": {
      "label": "Request an integration",
      "href": "#",
      "variant": "secondary"
    }
  }
}