# Integrations

> How email, web forms, Jira, Zendesk and lookup endpoints attach to an app, and which way each one moves data.

Canonical HTML page: https://conclude.io/doc/apps/integrations/
Last updated: 2026-10-27

---

An integration attaches one outside system to one installed app. These pages are for the builder who has to choose one. There are three kinds of integration, and the kind decides which way the data moves.

## Three kinds

![A ticket in the middle. Email and web form arrows point in. Jira and Zendesk arrows point both ways. A lookup arrow goes out to a service and back into an agent.](https://conclude.io/images/doc/figures/f10-integration-flows.svg)

*Figure: Intake flows into a ticket. Sync flows both ways against the ticket's state, and a lookup goes out to your service and back into an agent's prompt.*

**Intake** creates tickets. Each form post and each new email thread becomes a ticket, and its fields fill the ticket's attributes.

Email moves one way, with one exception. A reply from the ticket channel goes back to the sender. Nothing else about the ticket reaches the mailbox. A web form only sends data in. The page learns that Conclude accepted the post, and it gets an external ID that it can use to read the ticket back.

**Sync** keeps a ticket and an external record in step. Jira and Zendesk both carry comments, files and fields in both directions. Status crosses by a mapping, not by name.

Jira creates records in both directions. With Zendesk, tickets start in the app, and Conclude does not import a ticket that was opened in Zendesk.

Jira matches status by category. Any `Done` status closes the ticket, and the other categories keep it open. Zendesk follows a status table, and an option's `external:` value overrides that table. Concluding a ticket sends `solved` rather than the terminal `closed`, so the customer can still reopen it. When `solved` or `closed` arrives from Zendesk, Conclude concludes the ticket.

**Enrichment** gives an agent context. On the events you list, Conclude posts the event, the ticket title and the initiator's email to your HTTPS endpoint. It then places up to 4 KB of the response in the agent's prompt. Enrichment runs only when an agent answers, and it writes nothing back. A timeout or an error never blocks the reply.

## What they share

You switch email, Jira and Zendesk on for each installed app on the [Integrations tab](https://conclude.io/doc/apps/editor/integrations/). Web forms and lookup endpoints exist in YAML only, on the [Expert tab](https://conclude.io/doc/apps/editor/expert/).

Credentials never appear in YAML. Jira and Zendesk accounts live in the Admin console, and a lookup token is a named Secret. Email, web form and Zendesk share one `attributeMap` shape with `external` and `internal` entries. See [Connectors](https://conclude.io/doc/reference/connectors/#attribute-map-syntax).

Two public [endpoints](https://conclude.io/doc/reference/endpoints/) and one legacy alias feed integrations:

- `POST /v1/form/<cid>` creates a ticket
- `POST /v1/email/<id>` receives inbound mail

The [API](https://conclude.io/doc/api/) doesn't cover activities yet. Sync is the only two-way access to them.

## Pages in this chapter

- [Email](https://conclude.io/doc/apps/integrations/email/) covers the app's address, attribute mapping, replies, and the optional preprocessing and summary steps
- [Web forms](https://conclude.io/doc/apps/integrations/web-form/) covers the endpoint, the domain allowlist, reCAPTCHA, rate limiting, logging and the response
- [Jira](https://conclude.io/doc/apps/integrations/jira/) links one app to one Jira Cloud project. It covers what maps each way, pinned-only comment sync and status by category
- [Zendesk](https://conclude.io/doc/apps/integrations/zendesk/) covers what a new ticket creates in Zendesk, the tag, triage, custom-field mapping, and `solved` versus `closed`
- [Lookup endpoints](https://conclude.io/doc/apps/integrations/lookup/) covers the request, how the response enters the prompt, and the URL, timeout and size limits

For what an agent does with enrichment, see [Agents](https://conclude.io/doc/agents/).

## Pages in this section

- [Email](https://conclude.io/doc/apps/integrations/email/index.html.md): How to give an app an email address, so that inbound messages become tickets, replies go back to the sender, and Conclude adds summaries and translations.
- [Web forms](https://conclude.io/doc/apps/integrations/web-form/index.html.md): How to create tickets from a form on your website with the web connector, map form fields to attributes, restrict domains, add reCAPTCHA and read the response.
- [Jira](https://conclude.io/doc/apps/integrations/jira/index.html.md): How an app syncs both ways with one Jira Cloud project, which fields and comments travel in each direction, and what the integration account does.
- [Zendesk](https://conclude.io/doc/apps/integrations/zendesk/index.html.md): How an app mirrors its tickets to Zendesk, what syncs in each direction, and why concluding a ticket sets it to solved rather than closed.
- [Lookup endpoints](https://conclude.io/doc/apps/integrations/lookup/index.html.md): How an app’s lookup endpoint gives an agent data from your own HTTP service, what Conclude sends, and what it does with the response.

