naskel
APIMis à jour le

Opportunités

Lister, lire, créer, modifier et supprimer des opportunités via l'API. Champs renvoyés, statuts et corps de création.

La ressource opportunities permet de gérer votre pipeline commercial. L'enveloppe (authentification, pagination, format des réponses) est identique aux autres ressources.

Endpoints

MéthodeCheminScope
GET/api/v1/opportunitiesread:opportunities
POST/api/v1/opportunitieswrite:opportunities
GET/api/v1/opportunities/{id}read:opportunities
PATCH/api/v1/opportunities/{id}write:opportunities
DELETE/api/v1/opportunities/{id}write:opportunities

Les statuts

Une opportunité a l'un de ces statuts :

StatutSens
DRAFTBrouillon (par défaut)
QUOTE_SENTDevis envoyé
WAITING_REPLYEn attente de réponse
REPLIEDLe contact a répondu
HOTChaude
WONGagnée
LOSTPerdue

Lister les opportunités

Paramètres de requête : limit, offset (voir Pagination) et status.

Champs renvoyés

id, title, status, amount, priority, contactEmail, companyId, company (objet { id, name } ou null), lastContactAt, nextFollowUpAt, wonAt, createdAt.

GET /api/v1/opportunities/{id} ajoute quoteSentAt.

Créer une opportunité

ChampTypeRequisNotes
titletexte, 1 à 200 caractèresOui
amountnombre, 0 ou plusNon
contactIdtexteNonRattacher à un contact
companyIdtexteNonRattacher à une entreprise
statusstatut (voir ci-dessus)NonDRAFT par défaut

La réponse contient l'opportunité créée : id, title, status, amount, contactEmail, companyId, createdAt.

Le champ contactId n'est pas conservé

contactId est accepté en entrée mais n'est pas persisté : il sert uniquement à dériver le contactEmail renvoyé. La réponse ne contient donc pas de contactId. Pour relier durablement un contact, renseignez plutôt companyId et contactEmail.

Exemple

curl -X POST "https://app.naskel.io/api/v1/opportunities" \
  -H "Authorization: Bearer nsk_live_…" \
  -H "Content-Type: application/json" \
  -d '{ "title": "Refonte site ACME", "amount": 8000, "status": "QUOTE_SENT" }'

Modifier une opportunité

PATCH /api/v1/opportunities/{id} met à jour une opportunité, quel que soit son statut. Tous les champs sont optionnels.

ChampTypeNotes
titletexte, 1 à 200 caractères
amountnombre, 0 ou plus
statusstatut (voir ci-dessus)WON renseigne automatiquement wonAt
prioritynombre, 0 à 10
contactEmailemail
companyIdtexteRattacher à une entreprise

Supprimer une opportunité

DELETE /api/v1/opportunities/{id} supprime une opportunité, quel que soit son statut. La suppression est douce (soft delete). Réponse : { "ok": true }.

Voir aussi