> ## Documentation Index
> Fetch the complete documentation index at: https://modem.dev/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Front

> Capture shared inbox conversations and comments from Front

export const Prompt = ({text, variant = 'accent'}) => {
  const [copied, setCopied] = useState(false);
  const handleCopy = async () => {
    try {
      await navigator.clipboard.writeText(text);
      setCopied(true);
      setTimeout(() => setCopied(false), 2000);
    } catch {}
  };
  const clipboardIcon = <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round">
            <title>Copy</title>
            <rect x="9" y="9" width="13" height="13" rx="2" ry="2" />
            <path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1" />
        </svg>;
  const checkIcon = <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round">
            <title>Copied</title>
            <polyline points="20 6 9 17 4 12" />
        </svg>;
  const promptIcon = <svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style={{
    flexShrink: 0,
    opacity: 0.4
  }}>
            <title>Prompt</title>
            <path d="M20 2H2v20h2V4h16v12H6v2H4v2h2v-2h16V2zM6 7h12v2H6zm8 4H6v2h8z" />
        </svg>;
  return <div className={`prompt prompt-${variant}`} style={{
    marginTop: '12px',
    marginBottom: '12px'
  }}>
            {promptIcon}
            <span className="prompt-text">{text}</span>
            <button className="prompt-copy" onClick={handleCopy} title="Copy to clipboard" type="button">
                {copied ? checkIcon : clipboardIcon}
            </button>
        </div>;
};

The Front integration captures conversations from your Front shared inboxes in real time. Customer messages, your team's replies, and the internal comments alongside them flow into Modem, where they are grouped into [topics](/docs/guides/topics), classified by type, and linked to the [people and companies](/docs/guides/people) behind them.

<Warning>
  Front is currently in **beta** and enabled per organization. Modem's Front app is not yet listed in the Front App Store, so if you don't
  see Front under **Settings** → **Integrations**, email [support@modem.dev](mailto:support@modem.dev) to request access.
</Warning>

<Info>
  Front is **capture-only** and read-only. Modem ingests conversations, messages, comments, and the contacts on them; it never sends,
  replies to, or changes anything in Front, and the Modem Agent has no tools for taking action inside Front. You query captured Front
  conversations from the [Modem Agent on the web](/docs/features/agent), where the agent can still act on what it finds in your other connected
  tools.
</Info>

## How it works

Modem connects to your Front company with OAuth, authorized once by a Front admin. During that exchange Modem records which Front company the connection belongs to, which is also how it attributes each incoming webhook delivery to your organization.

From then on Front pushes conversation activity to Modem as it happens: new messages, comments, and changes to a conversation's status, assignee, and tags. Every delivery is signature-verified and time-stamped, and Modem rejects deliveries that fail verification or arrive more than five minutes late.

Front access tokens are short-lived, so a background job refreshes the connection's credentials before they expire. The connection normally stays authenticated without any action from you.

Connecting also requests a one-time backfill of your recent conversations, so history shows up without waiting for new traffic. See [Historical Backfill](#historical-backfill) below.

## Prerequisites

* **Owner or admin** role in your Modem organization, to connect and manage the integration
* A **Front admin** to authorize the connection. Front only lets admins authorize an app, and a non-admin's attempt comes back as a rejected grant.
* Access to the Front beta for your Modem organization (see the note above)

## Setup

<Steps>
  <Step title="Start the connection">
    Go to **Settings** → **Integrations** → **Front** in your Modem dashboard and click **Connect Front**. Only organization owners and
    admins can connect.
  </Step>

  <Step title="Authorize Modem in Front">
    You'll be redirected to Front to sign in and approve the connection. This step must be done by a **Front admin**. See
    [Permissions](#permissions) below for what Modem can read.
  </Step>

  <Step title="Confirm the connection">
    Front redirects you back to Modem automatically. The settings page shows the connected Front company, and new conversation activity
    starts flowing immediately.
  </Step>

  <Step title="Wait for the backfill">
    Modem imports your recent conversations in the background. See [Historical Backfill](#historical-backfill) below.
  </Step>
</Steps>

## Permissions

Modem's Front app holds **read-only** access, configured on the app itself rather than requested each time someone connects. There is nothing to pick during authorization: a Front admin approves the connection, and the app's read access applies.

Modem can read:

* Shared inbox conversations and their messages
* Internal comments on those conversations
* Contacts and teammates on a conversation
* Conversation metadata: inbox, status, and tags

Modem does not access:

* Sending, replying, or changing anything in Front
* Private (individual) inboxes
* Front account credentials or billing information

<Note>
  Front authorization is company-wide, not per user. A Front admin approves it once for the whole company, and Modem authenticates as the
  approved app rather than as an individual teammate. Each Modem organization connects to one Front company.
</Note>

## What Gets Captured

All shared inboxes in the connected company are captured. There is no inbox picker: each inbox becomes its own channel in Modem, and a conversation is filed under the inbox it lives in.

### Messages and comments

Each Front conversation is captured as one conversation in Modem, threaded like a support ticket:

* **Inbound messages** from customers and other external parties
* **Outbound messages** your teammates send in reply
* **Internal comments** written by your team, marked as internal

Email bodies are cleaned before they're stored: quoted-reply chains and signature blocks are stripped, so topics quote what the person actually wrote rather than the history beneath it. Short-form channels Front delivers (chat, SMS, and similar) are kept as-is, since a trailing "Thanks" there is content rather than a signature. Inline attachment data is dropped; attachment files themselves are not ingested.

Modem reacts to these Front events:

| Front event                       | What Modem does                                           |
| --------------------------------- | --------------------------------------------------------- |
| Inbound message received          | Adds the customer's message to the conversation           |
| Outbound message sent             | Adds your teammate's reply                                |
| Comment added                     | Adds the internal comment                                 |
| Conversation archived or reopened | Updates the conversation's state                          |
| Conversation deleted or restored  | Records the change; a deleted conversation stays in Modem |
| Conversation moved                | Updates the inbox the conversation is filed under         |
| Assignee changed                  | Refreshes the conversation's status and tags              |
| Tag added or removed              | Updates the conversation's tags                           |

Status, inbox, and tag changes are recorded on the conversation for context, but these housekeeping entries don't feed topic analysis; only real messages and comments do.

### Conversation status

Front's conversation statuses are mapped onto Modem's conversation states. Companies using Front's ticket statuses get the finer-grained mapping through the status category:

| Front status                                   | Modem state |
| ---------------------------------------------- | ----------- |
| Unassigned, assigned, or open                  | Open        |
| Waiting (ticket status category)               | Waiting     |
| Archived, or resolved (ticket status category) | Done        |

A deleted conversation, or one with a status Modem doesn't recognize, keeps its last known state rather than being guessed at.

### Authors

Customers are captured with the name and address they wrote from and, when Front has linked the message to a contact, that contact's identity, so the same person is recognized across conversations and resolves to Modem [people](/docs/guides/people). Your teammates are captured with their Front email addresses, so replies link to existing team members instead of creating duplicates. Front's automated identities (rules, AI, API and integration senders, bulk replies, and similar) are flagged as bots.

## Historical Backfill

Connecting requests a one-time import of your recent history automatically: conversations **started** in the last 90 days, up to **500 conversations**, along with their messages and comments. The window is measured from when a conversation was created, not when it was last active, so a long-running thread opened before the window isn't included even if it received a reply yesterday. It runs in the background and doesn't block real-time capture.

Front's API is rate-limited, so a busy company can take a while to finish. The backfill runs once per connection; reconnecting the same company later doesn't run it again.

## Analyzing Front Conversations

Once conversations are flowing, ask the [Modem Agent](/docs/features/agent) about them from the web dashboard like any other source.

<Prompt text="What are customers writing in about in Front this week?" />

<Prompt text="Summarize the open Front conversations that have been waiting longest" />

<Prompt text="Create a ticket for the recurring login complaints from Front and link the people who reported them" />

## Troubleshooting

<AccordionGroup>
  <Accordion title="I don't see Front in Integrations">
    Front is in beta and enabled per organization. Email [support@modem.dev](mailto:support@modem.dev) to request access.
  </Accordion>

  <Accordion title="Authorization was rejected in Front">
    Only a **Front admin** can authorize the connection. A regular teammate's attempt comes back as a rejected grant. Ask a Front admin
    to complete the authorization step.
  </Accordion>

  <Accordion title="Connected, but no conversations are appearing">
    Confirm the integration shows as connected in **Settings** → **Integrations** → **Front**, then allow a few minutes for webhook
    delivery and processing. Only **shared** inboxes are captured; a conversation in a teammate's private inbox never reaches Modem.
    Recent history arrives through the [backfill](#historical-backfill), which can take a while on a busy company.
  </Accordion>

  <Accordion title="The backfill seems incomplete">
    The backfill covers conversations started in the last 90 days, up to 500 conversations, so conversations that began before that
    window (even ones still active) and any beyond the cap aren't imported. It runs once per connection. If it looks wrong, contact
    [support@modem.dev](mailto:support@modem.dev).
  </Accordion>

  <Accordion title="The connection shows an error">
    Open **Settings** → **Integrations** → **Front** to see the error. If Front has revoked Modem's access, for example after the app
    was removed from your Front company, reconnect from the same page. Reconnecting requires a Front admin.
  </Accordion>

  <Accordion title="Authors aren't linking to people">
    Authors are matched to Modem people by email address. A customer who wrote in over a channel without an email address, such as chat
    or SMS, is captured under the handle they used and won't be linked to an existing profile automatically.
  </Accordion>
</AccordionGroup>

## Disconnecting

To disconnect Front:

1. Go to **Settings** → **Integrations** → **Front**
2. Click **Disconnect** and confirm

Modem stops accepting deliveries for the company immediately and stops refreshing its stored credentials, though the disconnected
connection record is retained. Nothing was created in your Front company when you connected, so there is nothing to clean up on the Front
side; to revoke Modem's access at the source, remove the Modem app from your Front company's settings, which invalidates the tokens
Modem holds. Historical data remains in Modem after disconnecting.

## Related

<CardGroup cols={2}>
  <Card title="The Modem Agent" icon="https://mintcdn.com/modem-844d7a4a/Wr2r4IRr97lNQiQb/icons/bot.svg?fit=max&auto=format&n=Wr2r4IRr97lNQiQb&q=85&s=2496f9106cb54fa9f4e27ad1f8f3a171" href="/docs/features/agent" width="22" height="22" data-path="icons/bot.svg">
    Query and act on your captured Front conversations from the web.
  </Card>

  <Card title="Topics" icon="https://mintcdn.com/modem-844d7a4a/Wr2r4IRr97lNQiQb/icons/label-alt-multiple.svg?fit=max&auto=format&n=Wr2r4IRr97lNQiQb&q=85&s=e7fbaf23c28396ac670b89cf38e1e4a6" href="/docs/guides/topics" width="24" height="24" data-path="icons/label-alt-multiple.svg">
    See how conversations are grouped into themes and classified.
  </Card>

  <Card title="Companies & People" icon="https://mintcdn.com/modem-844d7a4a/Wr2r4IRr97lNQiQb/icons/contact.svg?fit=max&auto=format&n=Wr2r4IRr97lNQiQb&q=85&s=727cb0ef6c8547993c6acfdaa30bd837" href="/docs/guides/people" width="24" height="24" data-path="icons/contact.svg">
    Understand how Front contacts are linked into unified profiles.
  </Card>

  <Card title="All Integrations" icon="https://mintcdn.com/modem-844d7a4a/Wr2r4IRr97lNQiQb/icons/link.svg?fit=max&auto=format&n=Wr2r4IRr97lNQiQb&q=85&s=e774d33588635d44c6c935b78ed55f13" href="/docs/integrations/overview" width="24" height="24" data-path="icons/link.svg">
    Browse every data source and agent tool.
  </Card>
</CardGroup>
