canonical: https://jentic.com/apis/developers.clientify.net/clientify

# Clientify API

Jentic publishes the only available OpenAPI specification for Clientify API, keeping it validated and agent-ready. Clientify is a sales CRM used by SMBs and agencies in Spain, Latin America, and the wider Spanish-speaking market to manage contacts, companies, deals, and tasks. The spec covers 15 endpoints across the four core CRM resources plus a users directory and task taxonomy lookups, giving agents a clean surface for sync, enrichment, and pipeline updates without browsing the Spanish-only docs site.

## For AI agents

Manage contacts, companies, deals, and tasks in the Clientify sales CRM through a focused 15-endpoint REST surface.

## Scope

Does not handle email sending, marketing automation flows, or invoicing - use for CRM contact, company, deal, and task management only.

## Capabilities

- List, create, fetch, update, and delete contacts via /contacts and `/contacts/{contactId}`
- Create and list companies for B2B account management through /companies
- Track sales opportunities by listing, creating, and reading deals on /deals and `/deals/{dealId}`
- Create and list tasks plus look up Clientify task types and stages under /tasks and `/tasks/types`
- List CRM users to assign records or audit ownership via /users
- Authenticate with a Clientify token in the Authorization header to run all operations under one tenant

## Use cases

### Lead capture from web forms into Clientify

Marketing teams pipe inbound form submissions into Clientify by calling POST /contacts on the form back-end. The new contact gets attached to a company via POST /companies if it is a B2B lead, then a follow-up task is created with POST /tasks to alert the assigned sales rep. The flow takes a single afternoon to wire and replaces brittle Zapier connections.

Example prompt: POST a new contact to /contacts with email, first name, last name; POST a related company to /companies; then POST a follow-up task to /tasks tagged to the contact.

### Pipeline reporting and deal sync

RevOps teams pull the Clientify deal list to a data warehouse for revenue forecasting and pipeline reporting. The job calls GET /deals on a schedule, then resolves per-deal detail with GET `/deals/{dealId}` and joins on the user list from /users for owner attribution. Output feeds Looker, Metabase, or Power BI dashboards.

Example prompt: Fetch GET /deals, then for each id call GET `/deals/{dealId}` and join with GET /users to produce a pipeline report with owner names.

### Task automation for SLA enforcement

Customer success and account management teams use the task endpoints plus task type and stage lookups to enforce response SLAs. A scheduled job creates POST /tasks entries when an account hits a renewal window or a contact has been silent for N days. The fixed task type and stage taxonomy keeps automation aligned with how the sales team triages work in the UI.

Example prompt: Read GET `/tasks/types` and `/tasks/types/stages` once, then POST tasks to /tasks for every account that has not been touched in 30 days.

### Agent-driven CRM updates through Jentic

AI agents handling sales support tasks (logging a call summary, advancing a deal stage, updating contact fields) can call Clientify through Jentic without holding the API token. Jentic stores the token in your Jentic One instance and exposes high-level intents like 'create a Clientify contact' so the agent stays in plain language and Jentic resolves the right endpoint and schema.

Example prompt: Search Jentic for 'update a Clientify contact', load the schema for PUT `/contacts/{contactId}`, then execute with the contact ID and new email.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/contacts` | List contacts |
| POST | `/contacts` | Create a contact |
| PUT | `/contacts/{contactId}` | Update a contact |
| GET | `/companies` | List companies |
| POST | `/companies` | Create a company |
| GET | `/deals` | List deals |
| POST | `/deals` | Create a deal |
| POST | `/tasks` | Create a task |

## Key resources

- **Contacts** — Full CRUD lifecycle for individual contact records
- **Companies** — List and create B2B account records to attach to contacts and deals
- **Deals** — Track sales opportunities through pipeline stages
- **Tasks** — Create and list tasks and read the type/stage taxonomy
- **Users** — List CRM users for ownership and assignment

## Why Jentic

- **Setup:** Wiring the Clientify API by hand means setting the Authorization token, reading the Spanish-language docs, and managing the contact, company, deal, and task payloads yourself. Through Jentic you install once, import the Clientify API from the API Directory, store the API key once, and your agent calls it.
- **Permission scoping:** You choose which Clientify operations the agent may call, so you can limit it to the ones it needs, such as listing and creating contacts, and leave deal or company writes out unless you add them. That keeps the agent to the CRM records you intend it to touch.
- **Credential handling:** Your Clientify API key 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 Clientify contact' or 'list deals', and Jentic returns the matching Clientify operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **HubSpot CRM Contacts** — HubSpot is the dominant SMB CRM with deep marketing tooling on the same platform
- **Pipedrive** — Pipedrive is a sales-pipeline-first CRM with a similar deal-and-contact data model
- **Brevo Email** — Brevo handles transactional and marketing email for contacts created in Clientify

## FAQ

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

Clientify publishes a Spanish-language developer site but not a single OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call Clientify 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 Clientify API use?

Clientify uses an API key passed in the Authorization header (Token <key>). The key is generated from the Clientify account settings. Through Jentic the token is held in your Jentic One instance and injected per call so it never enters agent context.

### Can I create deals programmatically with the Clientify API?

Yes. Call POST /deals with the contact reference, value, currency, and pipeline stage. Read GET `/deals/{dealId}` afterwards to confirm the stored fields and use GET /users to attach an owner.

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

Numeric rate limits are not declared in the OpenAPI spec. Clientify applies tenant-specific throttling that varies by plan. Build your integration with retry-with-backoff on 429 and confirm production limits in the Clientify dashboard.

### How do I create a Clientify contact through Jentic?

Run pip install jentic, then with the async client search for 'create a Clientify contact', load the schema for POST /contacts, and execute with email, first name, and last name. Jentic returns the new contact ID.

### Does the Clientify API expose task type and stage lookups?

Yes. GET `/tasks/types` lists all configured task types and GET `/tasks/types/stages` lists the stages under each type, so automations can stay aligned with the taxonomy seen by the sales team in the Clientify UI.

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

Yes. Because Jentic One is self-hosted, you set the rules for which Clientify operations your agent may call, so you can allow only what it needs, such as listing and creating contacts on /contacts, and leave deal writes on /deals or company writes on /companies out unless you add them. Your Clientify API key stays in your own instance and is injected per call, so the agent never holds the credential. That keeps the agent scoped to the CRM records you intend it to touch.
