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

# Channel overview

> Fini is headless. Knowledge composes from anywhere, the agent deploys anywhere, and Fini sits as the AI layer between your customers and your human team.

Fini is **headless**. That means three things:

* **Knowledge composes from anywhere**: past tickets, your help center, internal docs in Notion, Confluence, SharePoint, custom APIs, or anything else you can point an integration at.
* **The agent deploys anywhere**: every helpdesk you use, every chat surface your customers touch (website, authenticated app, mobile), your help center, voice, your internal Slack, or your own product over the API.
* **Fini is the first AI layer**: every customer interaction reaches Fini before it reaches a human. The agent resolves what it can; what it can't, it escalates to your team with the full conversation, knowledge sources, and reasoning trace already in their hands.

You don't have to pick one knowledge source and one channel. Most teams compose several of each.

## The architecture

```mermaid theme={null}
---
title: How Fini sits in your stack
---
flowchart LR
    subgraph KNOW["KNOWLEDGE SOURCES"]
        TICKETS["Past tickets"]
        HC["Help center"]
        DOCS["Internal docs<br/>Notion · Confluence · SharePoint"]
        API_IN["Custom APIs<br/>(your data)"]
    end

    FINI(("Fini<br/>AI agent layer"))

    subgraph DEPLOY["DEPLOYMENT SURFACES"]
        HELPDESK["External helpdesks<br/>Zendesk · Intercom · Front · HubSpot<br/>Salesforce · Gorgias · LiveChat<br/>Freshdesk · Deskpro"]
        WIDGET["Chat widget<br/>web · authenticated app · mobile"]
        INTERNAL["Internal chat<br/>Slack · Discord"]
        HELPCENTER["Help center"]
        BROWSER["Chrome extension"]
        VOICE["Voice"]
        API_OUT["API<br/>(anywhere else)"]
    end

    HUMAN["Your human team<br/>(escalation backstop)"]

    TICKETS --> FINI
    HC --> FINI
    DOCS --> FINI
    API_IN --> FINI

    FINI --> HELPDESK
    FINI --> WIDGET
    FINI --> INTERNAL
    FINI --> HELPCENTER
    FINI --> BROWSER
    FINI --> VOICE
    FINI --> API_OUT

    HELPDESK -.->|"escalate"| HUMAN
    WIDGET -.->|"escalate"| HUMAN
    INTERNAL -.->|"escalate"| HUMAN
    VOICE -.->|"escalate"| HUMAN

    classDef source fill:#F7F7F7,color:#131415,stroke:#E8E8E8
    classDef agent fill:#131415,color:#FFFFFF,stroke:#131415,stroke-width:3px
    classDef surface fill:#FFFFFF,color:#131415,stroke:#131415
    classDef human fill:#C3EE5E,color:#131415,stroke:#131415,stroke-width:2px

    class TICKETS,HC,DOCS,API_IN source
    class FINI agent
    class HELPDESK,WIDGET,INTERNAL,HELPCENTER,BROWSER,VOICE,API_OUT surface
    class HUMAN human
```

Read the picture left to right. Knowledge flows in from any combination of sources. Fini holds that knowledge, applies your prompts and rules, and answers on whichever deployment surfaces you've connected. When the agent can't resolve a conversation, by policy, by confidence, or because the customer asked for a person, it escalates to your team with the trace and context already attached.

## Knowledge from anywhere

Fini doesn't require you to migrate your knowledge into a new tool. Point it at where your knowledge already lives.

<CardGroup cols={2}>
  <Card title="Past tickets" icon="ticket">
    Resolved conversations from your existing helpdesk become training signal, the agent learns the patterns your team has already solved.
  </Card>

  <Card title="Help center" icon="book-open">
    Your existing articles index automatically. No copy-paste, no separate CMS.
  </Card>

  <Card title="Internal docs" icon="folder-tree">
    Notion, Confluence, SharePoint, Google Drive, connect the workspace and the agent reads from it like your team does.
  </Card>

  <Card title="Custom data via API" icon="code">
    Use [User Attributes](/en/api-reference/attributes) and [Actions](/en/api-reference/actions) to bring in anything else: order status, plan tier, account flags, real-time inventory.
  </Card>
</CardGroup>

Configure sources under [Knowledge → Sources](/en/knowledge/sources). The full list of integrations and field-level details is documented there.

## Deploy anywhere

Pick the surfaces that match where your customers already reach you. Most teams use more than one.

<Frame>
  <img src="https://mintcdn.com/fini/zctNPVP1t-q6dPqV/images/en/deploy/deploy-overview.png?fit=max&auto=format&n=zctNPVP1t-q6dPqV&q=85&s=1fe8e57e61c9fee33a9dd09c21680604" alt="Deploy page in the Fini Demo workspace split into Internal Integrations and External Integrations, with cards for API Key, Chrome Extension, Chat Widget, Help Center, Zendesk, Intercom, Front, HubSpot, Slack, Discord, LiveChat, Gorgias, Salesforce, Freshdesk, and Deskpro" width="1680" height="1050" data-path="images/en/deploy/deploy-overview.png" />
</Frame>

### Facebook

[Facebook](/en/deploy/facebook) connects Pages to Fini for Page comments and Messenger conversations. Authorize the Page, choose its agent, and verify event delivery and replies before rollout. Saved authorization alone does not prove the messaging path is working.

## Internal integrations

Surfaces that Fini ships and you control directly. Configure them once and they're yours — no third-party authorization, no per-channel setup.

<CardGroup cols={2}>
  <Card title="API Key" icon="key" href="/en/deploy/api-keys">
    Generate workspace-scoped credentials for Fini's public APIs. Keys can carry `read`, `write`, or both, covering agent and interaction reads, conversation events, document ingestion, and knowledge management.
  </Card>

  <Card title="Chrome Extension" icon="chrome">
    Have Fini with you in every tab. Useful for support agents who want the AI in-context while working on a ticket in any web tool.
  </Card>

  <Card title="Chat Widget" icon="message" href="/en/deploy/widget">
    Add Fini to your own product as an embedded widget or standalone surface with a single code snippet. Works on web, inside authenticated apps, and in mobile apps (talk to your Fini contact for iOS and Android setup).
  </Card>

  <Card title="Help Center" icon="book-open" href="/en/deploy/helpcenter">
    Publish a Fini-powered help center hosted on your own domain — your knowledge base, search-enabled, with the AI agent answering search queries directly.
  </Card>

  <Card title="Email" icon="envelope" href="/en/deploy/email">
    Create support addresses on your domain that route directly into Fini's native Inbox and ticket workspace.
  </Card>
</CardGroup>

### Chat widget

A chat bubble customers click to talk to your AI agent. The same widget runs in three contexts:

<CardGroup cols={2}>
  <Card title="On your website" icon="globe">
    Anonymous visitors and prospects. Drop the snippet into any page.
  </Card>

  <Card title="Inside your authenticated app" icon="lock">
    Logged-in customers, with user identity and metadata passed through. The agent sees who's asking and personalizes accordingly.
  </Card>

  <Card title="iOS and Android" icon="mobile-screen">
    Native mobile apps. Same widget, same agent, same configuration. Talk to your Fini contact for the current iOS and Android embedding setup.
  </Card>
</CardGroup>

See the [Widget](/en/deploy/widget) page for embedding details.

### Help center

A hosted, AI-powered help center, your knowledge base, search-enabled, with the Fini agent answering search queries directly. Set it up in [Help Center](/en/deploy/helpcenter).

### Email

A Fini-hosted email channel for teams that want inbound support addresses on their own domain without routing through a third-party helpdesk first. Add and verify a domain, create one or more bot email addresses, then route each address to the agent that should answer it. Set it up in [Email](/en/deploy/email).

## External integrations

Surfaces that connect Fini to a third-party tool your team already uses. Setup pattern is the same across them: authorize the integration, pick which Fini agent answers on which channel, and configure reply behavior.

<CardGroup cols={2}>
  <Card title="Zendesk" icon="headset" href="/en/deploy/zendesk">
    Personalized AI responses with seamless handoff for Zendesk chat and email. Supports multiple Zendesk brands.
  </Card>

  <Card title="Intercom" icon="comment-dots" href="/en/deploy/intercom">
    AI-driven personalized support and seamless handoff for Intercom chat and email across one or many workspaces.
  </Card>

  <Card title="Front" icon="inbox" href="/en/deploy/front">
    AI-powered responses with seamless human handoff for Front chat and email inboxes.
  </Card>

  <Card title="HubSpot" icon="building" href="/en/deploy/hubspot">
    Personalized AI responses and effortless handoff for HubSpot Inbox chat and email channels.
  </Card>

  <Card title="Microsoft 365" icon="envelope" href="/en/deploy/microsoft365">
    AI responses from Microsoft 365 shared mailboxes, routed to the Fini agents you choose.
  </Card>

  <Card title="Slack" icon="slack" href="/en/deploy/slack">
    Help your team get AI answers on your internal data within Slack — common for IT, HR, and internal ops support.
  </Card>

  <Card title="Discord" icon="discord">
    AI-driven customer support within your Discord community.
  </Card>

  <Card title="LiveChat" icon="comments" href="/en/deploy/livechat">
    AI-driven support with seamless handoff in LiveChat.
  </Card>

  <Card title="Gorgias" icon="cart-shopping" href="/en/deploy/gorgias">
    Personalized AI responses and effortless handoff for Gorgias e-commerce support tickets.
  </Card>

  <Card title="Salesforce" icon="cloud" href="/en/deploy/salesforce">
    AI-driven personalized support and seamless handoff for Salesforce email cases. The most setup-heavy of the helpdesks.
  </Card>

  <Card title="Freshdesk" icon="headset">
    Personalized AI responses and effortless handoff for Freshdesk.
  </Card>

  <Card title="Deskpro" icon="inbox">
    Personalized AI responses and effortless handoff for Deskpro tickets.
  </Card>
</CardGroup>

### Voice

Fini runs as a voice agent on inbound phone support. Customers reach the same agent through a phone number; calls are transcribed, the agent reasons over your knowledge and rules just like any other surface, and escalates to a human queue when needed. Conversations show up in [Inbox](/en/testing/inbox) alongside chat and email, with the same AI Steps trace available for every turn.

<Note>
  Phone-number provisioning and inbound-call routing still require coordination with your Fini contact. Configuring an agent or starting a browser test does not provision a phone number.
</Note>

Workspace admins manage voice from **Voice** in the agent sidebar, not from a Deploy integration card. Select the agent, then click **Connect voice** if it is not configured.

Enable the **Voice agent** toggle to edit **Voice**, **Speaking pace**, **Delivery**, **Greeting**, and **Agent prompt**. Use the preview button to hear the selected voice, then click **Save** to apply changes. The page no longer has an **Agent sync** panel or a **Sync now** action.

When browser testing is available and the voice agent is enabled, save any pending changes and click **Start test**. A **Voice test call** dialog opens with a live transcript and call status. Speak into your microphone and follow your messages and the agent's replies in the dialog.

Use **Mute microphone** or **Unmute microphone** during the call. Click **End call** to finish and review the transcript before closing the dialog. Closing the dialog ends an active call and clears the displayed transcript. While connecting, use **Cancel** to stop the attempt.

If testing is unavailable, the page disables **Start test**. Contact your Fini team if setup or testing fails.

To remove the voice connection, click **Disconnect** in the **Disconnect voice** section, then confirm **Disconnect** in the dialog. Fini ends any active browser test and returns the page to the unconfigured state.

<Warning>
  Disconnecting removes the voice agent and its voice, greeting, and prompt settings. Reconnecting starts fresh. To pause voice without removing the configuration, turn off **Voice agent** and click **Save** instead.
</Warning>

If the page says **This bot is not available here**, select an agent in your workspace and check that you have an admin role. For **Voice settings unavailable**, click **Retry** or contact your Fini team.

### API

For backend jobs, internal tools, BI exports, conversation-event submission, and knowledge-management workflows, Fini exposes public HTTP APIs authenticated with workspace API keys. The current route map covers agents, interactions, documents, folders, articles, and knowledge-generation jobs. See [API overview](/en/api-reference/overview) and [API Keys](/en/deploy/api-keys) for the full surface and scope model.

## The first-layer pattern

Most production Fini deployments follow the same pattern: **every customer interaction reaches Fini first.** The agent triages, answers what it can, and escalates the rest.

This works because the agent has the same knowledge, the same rules, and the same tools regardless of which surface a customer arrived on. A question about cancellation policy gets the same answer whether it came in by email through Zendesk, through the widget on the website, or through a Slack DM to an internal IT bot. The agent doesn't know or care which surface it's on, it just answers.

What you get from this pattern:

* **One source of truth.** Your knowledge, your prompts, your rules live in one place. Update them once and every channel reflects the change.
* **Consistent answers.** The customer experience doesn't depend on which channel they pick.
* **Triage at scale.** Fini handles the high-volume long tail (password resets, status checks, policy questions, simple how-tos) so your team's time goes to the conversations that actually need a human.
* **Escalations come pre-loaded.** When a conversation does reach a human, the agent's full trace, what was tried, what was retrieved, what the customer's context is, comes with it. Your team starts the conversation already informed.

## Composing surfaces

Surfaces aren't mutually exclusive. Two common composition patterns:

### Run multiple surfaces independently

Each surface handles its own traffic. Common when the audiences are different, for example, the widget on your marketing site serves prospects while the Zendesk integration handles existing customers. The agent's knowledge and configuration can be shared (same bot across surfaces) or split (different bots per surface) depending on how much you want the experiences to diverge.

### Use the widget, escalate into your helpdesk

The most common combined setup. The agent answers in the widget; if it can't help, the conversation hands off as a real ticket in your helpdesk. The customer sees a smooth handoff inside the widget; your support team picks up the conversation in the tool they already use, with the full Fini trace attached.

<Note>
  Today, **Zendesk, Front, Salesforce, HubSpot, and Gorgias** can be widget escalation destinations. The other helpdesk integrations (Intercom, LiveChat, Slack) work as direct integrations only, they don't yet support being the destination for widget escalations.
</Note>

To set up widget escalation, connect the destination helpdesk first (Zendesk, Front, Salesforce, HubSpot, or Gorgias), then create a [Business Rule](/en/automations/business-rules) for the widget escalation flow. The widget settings page controls embed, styling, identity, and metadata settings; Business Rules own the handoff workflow.

## Where to start

<CardGroup cols={3}>
  <Card title="You already use a helpdesk" icon="headset" href="#external-integrations">
    Click into the integration above. Each page walks through the connect flow and configuration.
  </Card>

  <Card title="You want chat on your site or app" icon="message" href="/en/deploy/widget">
    Start with the Widget. Embed in 5 minutes, configure escalation later.
  </Card>

  <Card title="You want a searchable knowledge base" icon="book-open" href="/en/deploy/helpcenter">
    Start with Help Center. Point at your existing articles, publish.
  </Card>
</CardGroup>


## Related topics

- [Overview](/en/api-reference/guardrails.md)
- [Behavior](/en/configuration/prompts.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.