Clínica Experts

Clínica Experts is the NicoApp that integrates with the Clínica Experts clinic management system (app.clinicaexperts.com.br). With it, the NicoChat flow creates, edits and searches for patients.

2026-08-12
Note
App developed by NicoChat itself, in Beta (v1.0.0), already installed in customer channels. Available in the NicoApps tab.

How to obtain the API credentials (token)

Attention
Clínica Experts does not publish an integrations/API guide for developers. Ask Clínica Experts support or the account manager to release the integration token.

What we confirmed from the NicoApp's technical configuration:

  • Authentication uses a single token (Bearer) — it does not use username + password (Basic Auth). When installing the app, only a Token field is requested.
  • The base endpoint used is https://app.clinicaexperts.com.br/api/v1/patients.

Recommendation: contact Clínica Experts support or the account manager to request the release of an API key for external integrations. It is also worth asking whether there is an "Integrations" screen in the clinic's panel, since access may be tied to a specific plan.

Limitations

Attention
The request limit and the requirement of a specific plan for the API are not publicly disclosed by Clínica Experts. Confirm with support or the account manager before sizing high-volume flows.
  • No public information about the API's rate limit or monthly quota.
  • No public information about whether the API requires a specific Clínica Experts plan.
  • Always handle the error path of the actions ($.errors mapping) — it is the only way to know whether Clínica Experts refused a call (e.g. duplicate patient, invalid field, expired token or token without permission).

What the NicoApp does

The app is structured into 5 sub flows. Of these, 3 are already finished and published as actions — that is what the table below documents:

Action
What it does
Main inputs
Outputs
Create Patient
Registers a new patient in Clínica Experts
Name, E-mail, Phone, Note, Date of Birth, Gender, Marital Status, Occupation, Notifications (SMS/WhatsApp/E-mail), Document (type + number), Source, Contacts (Facebook/Instagram); Address (ZIP Code, Street, Number, Complement, District, City, State, Country) — sent only if the ZIP Code is filled in
Patient ID (uuid), Errors
Edit Patient
Updates the data of an existing patient (partial update: it only sends the filled-in fields)
Patient ID (required) + any Create Patient field that needs to change
Patient ID, Errors
Search Patient
Searches for a registered patient by e-mail
E-mail
Patient ID (uuid), Errors
Note
Technical note (finding from this review): in the currently saved configuration of Search Patient, the e-mail parameter used in the call appears fixed to a test value, instead of bound to the flow's input variable. Before rolling this action out widely, validate with a real test — searching for an e-mail different from the one used in the tests — whether the result matches the e-mail provided.
Attention
Available Times and Webhook exist in this app's builder, but they are in draft (not published) and inconsistent: "Available Times" still calls the patients endpoint (/api/v1/patients) instead of a schedule/times endpoint, and "Webhook" is empty, with no logic implemented. Do not use these two actions in production until they are reviewed and fixed.

Tips and notes

  • Error handling: all actions map the API's error response ($.errors) into a variable — use the error path of the action block to handle failures in the flow (e.g. duplicate patient, missing required field, invalid token).
  • Optional address: in Create Patient, the address block is only sent if the ZIP Code field is filled in.
  • Partial update: in Edit Patient, you only need to provide the fields that actually changed — empty fields do not overwrite what is already registered.
  • Patient ID (uuid): store it in a bot variable as soon as you create or search for a patient, so you can reuse it in the next actions (e.g. Edit Patient).
  • Token: treat it as a secret — configure it only in the app's authentication field at installation, never in free text inside the flow.