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

# 3CX

> Connect each client's 3CX phone system to Triggr with a Configuration API client.

Triggr lists users and creates users and their extensions on 3CX systems running version 20 or later. Each system needs the licence 3CX requires for the Configuration API (an 8SC or higher AI licence).

## Set up 3CX

Repeat these steps on each client's system, with an API client just for Triggr: 3CX keeps one access token active per API client, so tools that share one sign each other out.

<Steps>
  <Step title="Add an API client">
    In the 3CX Admin Console, go to **Integrations > API** and click Add.
  </Step>

  <Step title="Set the Client ID">
    Use a value not already in use on the system, such as an unused extension number, and tick 3CX Configuration API Access.
  </Step>

  <Step title="Set Department and Role">
    Choose System Owner or System Admin to list and create users anywhere on the system.
  </Step>

  <Step title="Save and copy the API key">
    3CX shows the key only once.
  </Step>

  <Step title="Find the FQDN">
    It's the 3CX Web Client address without `https://`, such as `yourcompany.3cx.eu`, or `pbx.example.com:5001` if it has a port. It must serve HTTPS to the internet with a publicly trusted certificate; allow [Triggr's IP addresses](/security/ip-allowlist) through any firewall.
  </Step>
</Steps>

See 3CX's [Configuration API guide](https://www.3cx.com/docs/configuration-rest-api/).

## Connect it in Triggr

<Steps>
  <Step title="Open the client's configuration">
    Go to **Integrations > 3CX** and click **Configure** on the client's row in the Per-Client Configuration card.

    <Frame>
      <img src="https://mintcdn.com/triggr/nyuVXZ1rouDTTEvu/images/integrations-common/per-client-configuration.png?fit=max&auto=format&n=nyuVXZ1rouDTTEvu&q=85&s=11464b4946bea0b580c73330d9114a41" alt="The Per-Client Configuration card listing Acme Corp and Globex, each Not Configured with Admin Consent Not Required and a Configure button." width="2272" height="646" data-path="images/integrations-common/per-client-configuration.png" />
    </Frame>
  </Step>

  <Step title="Enter the API client's details">
    Enter the ClientID, the API key as ClientSecret and the FQDN, then click **Save Configuration**.

    <Frame>
      <img src="https://mintcdn.com/triggr/MwzXHG3UWzFixdSz/images/3cx/configure.png?fit=max&auto=format&n=MwzXHG3UWzFixdSz&q=85&s=41bd57eadaf01a7fb8f1fcab09d24ab1" alt="The 3CX configuration window with ClientID, ClientSecret and FQDN fields, an Allow insecure TLS switch under Advanced, and a Save Configuration button." width="1344" height="1354" data-path="images/3cx/configure.png" />
    </Frame>
  </Step>
</Steps>

Per-client integrations never fall back to the Base Configuration, so every client whose workflows use 3CX needs its own row; the Base Configuration is only for workflows that don't run for a client. If several clients are departments on one shared system, add a separate API client for each, scoped by its Department and Role.

Create User takes 3CX's user fields as JSON, with `Id` set to `0`. See 3CX's [Create a User](https://www.3cx.com/docs/configuration-rest-api-endpoints/) reference.

## Troubleshooting

<AccordionGroup>
  <Accordion title="No 3CX integration is configured for this client">
    Configure the client on the Per-Client Configuration card, then run the workflow again.
  </Accordion>

  <Accordion title="No access token in response">
    Check ClientID matches the API client exactly and ClientSecret holds the full API key. If you've lost the key, add a new API client.
  </Accordion>

  <Accordion title="Failed to execute token request">
    FQDN must be only the address and port, with no `https://` or path, and reachable from the internet with a trusted certificate. Allow [Triggr's IP addresses](/security/ip-allowlist) if a firewall restricts it.
  </Accordion>

  <Accordion title="Failed to parse token response">
    Something other than 3CX answered at the FQDN. Check it points at the 3CX system.
  </Accordion>

  <Accordion title="Steps fail intermittently with authentication errors">
    Another tool is using the same API client. Add one just for Triggr.
  </Accordion>

  <Accordion title="Users are missing, or a user can't be created">
    Check 3CX Configuration API Access is ticked on the API client, and that its Role is System Owner or System Admin, or covers the right Department.
  </Accordion>

  <Accordion title="Create User fails with WARNINGS.XAPI.ALREADY_IN_USE">
    The `Number` is already used by another extension. Choose a free one.
  </Accordion>
</AccordionGroup>


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