Skip to content
shadcn.io

shadcn.io is not affiliated with official shadcn/ui

Intercom Contacts List Integration Block for React

An integration list for a conversation-routing tool and Intercom: a sortable table of synced contacts with the last-seen weekday, conversation count, plan and sync state, and a working Retry on the one that failed.

Framework
UI library

Preview

Preview width

Installation

Part of Pro
Pro unlocks the code and one-line install of every Pro button and text effect, plus the MCP for your AI editor.
Have Pro already? Sign in to open it.Opens here as soon as you're Pro.

Overview

An integration list for React with Base UI, written for Inboxlane, a fictional tool that tags and routes conversations, and the Intercom contacts it has synced. A compact header counts the synced contacts ("7 of 8 contacts are synced") with the mark pair at its end, then one table sits in a tinted frame (a raised panel in a shell, a note panel under it). The columns are the contact (name and email), when it was last seen as a weekday, its conversation count, its plan and its sync state. The heads are buttons that sort, with aria-sort on the active head and a polite line saying how the rows are ordered; there are no checkboxes and no bulk bar. One contact failed to sync: its Retry turns the row to Syncing for about a second, then to Synced, in the same row height, and the status line says nothing was sent to Intercom. Below md the last-seen, count and plan columns fold into a second line under the name. The block ends on its note panel. Intercom is named in text only: no logo, colour or wordmark ships. The contacts are example data with .example addresses.

FAQ

How does sorting work?

Each sortable head is a real button inside a th, with aria-sort set to ascending or descending on the active column only. A first click starts at the order that matters most (most recent first for last seen, highest first for conversations and plan, failed first for sync, A to Z for names), and a second click turns it round. Ties fall back to the name. The polite line under the table says how the rows are ordered after each change.

Why are last-seen days weekdays, and how are they kept from going stale?

Each contact stores a fixed ISO day and the table spells it as a weekday ("Tuesday") with a fixed formatter, so the server and every browser agree and nothing reads the clock. The note under the table says last seen is within the past week, which holds because the data is example data; with live data, show a date for anything older.

What does Retry do?

It changes local state only. The row turns to Syncing for 900 ms, then to Synced, the header count goes up by one and focus moves to the contact's row, since the button is gone. The polite line says "Retry queued for Dmitri Vale in this demo. Nothing was sent to Intercom." Replace retry with a call to your own sync endpoint.

How does it fit a phone, right-to-left layouts and reduced motion?

Below md the last-seen day, plan and conversation count move into a second line under each name, so the table needs no sideways scroll; the table's region is still focusable in case it does scroll. In a right-to-left layout the columns flip while emails and numbers keep their direction. The header fades up once on load, and not at all with reduced motion.

What does a screen reader hear?

A table with a caption, column heads that are buttons with their sort state, the contact's name as the row header, and a Retry button named "Retry the sync for Dmitri Vale". The sync state is a word ("Failed", "Syncing", "Synced") with a mark, never colour alone; the failed mark uses the status colour, the one exception in the block.

  • Pro

    An integration setup flow for a conversation-routing tool connecting to Intercom: pick the region, approve four permissions, test a sample message against the rules, then finish.

  • Pro

    Intercom Rules Grid Integration

    Switch and tick grids

    An integration grid for a conversation-routing tool and Intercom: six if-then rule cards on shared hairlines, each with a switch, an IF row, an arrow and a THEN row of tags, teams and notes.

  • Pro

    Intercom Detail Integration

    With a product drawing

    An integration detail section for a conversation-routing tool connecting to Intercom: a drawing of its panel in the conversation sidebar, the mark pair, Connect Intercom, three steps and the four permissions it asks for.

  • Pro

    An integration stats section for a conversation-routing tool and Intercom: a curve of how fast messages get tagged with p50 and p95 marked, a 1, 4 or 10 second cursor and three derived figures.

  • Pro

    A table of services in a tinted frame with sortable column heads, 30-day uptime strips, response times and error rates, and a mark and a word on any service that is down.

  • Pro

    Rollback History Changelog

    Deploys and rollouts

    A table of rollbacks that runs rail to rail and ends the block: the day, the version it came from and the one restored, a reason badge, a sortable time to revert and how each ended, with a summary counted from the rows.