canonical: https://jentic.com/apis/karlia.fr/karlia

# Karlia Fr Karlia API

Jentic publishes the only available OpenAPI specification for Karlia API, keeping it validated and agent-ready. Karlia is a French CRM platform whose v2 API covers customers, suppliers, contacts, opportunities, documents, products, equipment, purchases, bank accounts, events, notes, tasks, calls, time entries, projects, tickets, forms, webhooks, and users. It is built for French SMBs that want CRM, project tracking, and ticketing in one tool, with native handling of French invoicing and supplier workflows.

## For AI agents

Manage customers, opportunities, projects, tickets, and supplier records inside a Karlia French CRM tenant. 44 endpoints covering CRM, project, ticketing, and supplier workflows.

## Scope

Does not handle accounting ledgers, e-commerce storefronts, or marketing email sends - use for Karlia CRM, project, ticketing, and supplier records only.

## Capabilities

- Create and update customer and supplier records via /customers and /suppliers endpoints
- Track sales opportunities through the pipeline via the /opportunities endpoints
- Drive client projects and ticket queues via /projects and /ticketing endpoints
- Capture activities (events, notes, tasks, calls, time entries) linked to customers and projects
- Manage product catalogue, equipment, and purchases for B2B service workflows
- Subscribe to platform changes through /webhooks and store custom fields per resource

## Use cases

### Lead-to-Customer Pipeline Automation

Capture leads from a French website form, push them into Karlia as customer records, and immediately spawn an opportunity in the right pipeline stage. The /customers and /opportunities endpoints accept create payloads with custom fields, so a webhook-triggered automation routes inbound French B2B leads end-to-end without sales reps re-keying data into the CRM.

Example prompt: Create a customer via POST /customers from a website form payload, then POST /opportunities with the customer ID and a 'Discovery' stage.

### Client Project and Ticket Operations

Run client delivery work inside Karlia by spinning up projects per signed engagement and routing inbound issues to the ticket queue. The /projects and /ticketing endpoints expose CRUD-level operations, ownership, and status fields, so a services team can automate kickoff (project + first task) and customer support (ticket create + assignment) without manual data entry.

Example prompt: Create a project for customer {id} via POST /projects and open an associated ticket via POST /tickets when a support email arrives.

### Supplier and Purchase Sync

Mirror supplier records and purchase orders between Karlia and an external accounting tool so French SMBs avoid re-keying invoices and purchase data. The /suppliers, /purchases, and /products endpoints cover the full B2B procurement model that Karlia tracks for service firms, with bank account links surfaced through /bank.

Example prompt: List suppliers via GET /suppliers and upsert each into the accounting system, then post a new purchase via POST /purchases when a PO is signed.

### Activity Capture from Email and Calendar

Push events, calls, notes, and tasks into Karlia from email, calendar, and softphone tools so account managers see a single timeline per customer. The activity endpoints (/events, /notes, /tasks) accept the customer or opportunity ID directly, which means a low-code automation can fan out inbound communications to the right Karlia record automatically.

Example prompt: Create a note via POST /notes summarising a meeting and link it to customer {id} and opportunity {id}.

### Agent-Driven French CRM Operations

An AI assistant for a French services firm uses Jentic to update Karlia when an account manager says 'log a call with Acme' or 'create an opportunity for Dupont'. Jentic resolves the customer by name, picks the right endpoint, and executes the call, while bearer-token credentials stay in the vault and never reach the agent's prompt.

Example prompt: Use the Jentic search 'log a call in Karlia', load the schema, and POST /calls with the customer ID and call summary.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/customers` | List customers |
| POST | `/customers` | Create a new customer |
| POST | `/opportunities` | Create a sales opportunity |
| POST | `/projects` | Create a client project |
| POST | `/notes` | Add a note to a customer or opportunity |
| POST | `/webhooks` | Subscribe to platform events |

## Key resources

- **Customers** — Create, list, update, and resolve customer records with custom fields and history.
- **Suppliers** — Manage supplier records and link them to purchases and contacts.
- **Opportunities** — Track sales opportunities through pipeline stages.
- **Projects** — Run client delivery projects with assigned users and tasks.
- **Ticketing** — Manage customer support tickets and queues.
- **Activities** — Capture events, notes, tasks, calls, and time entries against customers and opportunities.
- **Webhooks** — Subscribe to platform changes for downstream automation.

## Why Jentic

- **Setup:** Wiring the Karlia API by hand means learning its bearer auth, calling karlia.fr/app/api/v2, and working out the customer, opportunity, and project body shapes from French-language docs yourself. Through Jentic you install once, import the Karlia API from the API Directory, store the token once, and your agent calls it.
- **Permission scoping:** Karlia's writes post to collection endpoints like /customers, /opportunities, and /projects rather than a resource id in the path, so scope the agent by the operations it needs, such as creating an opportunity or opening a ticket. You pick that set, so an agent built to log opportunities is not given webhook creation unless you add it.
- **Credential handling:** Your Karlia bearer token is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'create a Karlia opportunity' or 'open a support ticket', and Jentic returns the matching Karlia operation with its body schema so the agent calls the right endpoint without reading Karlia's documentation.

## Related APIs

- **HubSpot CRM** — Global CRM with much broader marketing tooling but less France-specific workflow.
- **Pipedrive API** — Pipeline-focused CRM without Karlia's ticketing and project modules.
- **Freshdesk API** — Standalone helpdesk that some firms run alongside a CRM.
- **Zoho CRM API** — Multi-product CRM suite with broader integrations but less French-localised workflow.

## FAQ

### Why is there no official OpenAPI spec for Karlia API?

Karlia does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call Karlia API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the Karlia API use?

The API uses HTTP bearer tokens. Each request must include `Authorization: Bearer {token}` issued from the Karlia tenant settings. Through Jentic the token is held encrypted in the vault and injected at execution time, so the agent never has direct access to the secret.

### Can I create a sales opportunity attached to a customer with the Karlia API?

Yes. POST /opportunities accepts a customer reference and pipeline stage in the body, and the response includes the opportunity ID for follow-up calls. Use GET /customers first if you need to resolve a customer by name to its Karlia ID.

### What are the rate limits for the Karlia API?

Karlia does not publish hard rate limits in the OpenAPI spec. In practice the platform tolerates typical SMB-CRM traffic and returns HTTP 429 on bursts. Use webhook subscriptions via POST /webhooks to avoid polling and stay below the throttle.

### How do I open a support ticket for a Karlia customer through Jentic?

Run `pip install jentic` and search Jentic for 'create a Karlia ticket'. Jentic returns the schema for POST /tickets; supply the customer ID, subject, and body, then execute to open the ticket and route it to the right queue.

### Does the Karlia API support custom fields on customer records?

Yes. GET `/customers/custom-fields` lists the custom field definitions configured for the tenant, and the customer payload accepts custom field values when creating or updating a record. This is essential for French firms that store SIRET numbers or sector codes.

### Is the Karlia API free?

API access is bundled with Karlia paid plans. The free Jentic tier covers integration plumbing, but the underlying CRM seats and storage are billed by Karlia.

### Can I limit what my agent is allowed to do with the Karlia API?

Yes. Because you run Jentic One yourself, your own rules decide which Karlia operations and credentials the agent may use. Karlia's writes post to collection endpoints such as POST /customers, POST /opportunities, and POST /projects, so you scope the agent to only the operations it needs, like creating an opportunity or opening a ticket via POST /tickets. An agent built to log opportunities is not given POST /webhooks unless you add it, and the bearer token stays with your instance rather than the agent.
