DM Champ Docs

API pentru oportunități (Deals)

O oportunitate (deal) reprezintă o șansă de vânzare pe panoul Sales Pipeline — un titlu, o valoare, etapa în care se află și, opțional, contactul căruia îi aparține și membrul echipei căruia îi este atribuită. Acest ghid acoperă citirea și gestionarea oportunităților prin intermediul API-ului.

Toate exemplele de mai jos arată forma de interogare ?apiKey= în cURL și antetul X-API-Key în JavaScript și Python — oricare dintre ele funcționează pe fiecare endpoint.


Obiectul deal

{
  "id": "deal_abc123",
  "title": "Annual plan – Jane's Clinic",
  "description": "Asked for pricing on the annual plan.",
  "company": "Jane's Clinic",
  "stage": "stage-2",
  "value": 4800,
  "probability": 60,
  "priority": "high",
  "status": "open",
  "source": "whatsapp",
  "position": 0,
  "contact_id": "ctc_9f8e7d",
  "assigned_to": "usr_4a2b",
  "tags": ["clinic"],
  "close_date": "2026-10-01T00:00:00.000Z",
  "created_at": "2026-09-05T09:12:00.000Z",
  "updated_at": "2026-09-05T09:40:00.000Z",
  "stage_entered_at": "2026-09-05T09:40:00.000Z"
}

stage este id-ul uneia dintre etapele fluxului tău de vânzări — citește-le din setările fluxului tău (GET /users/me/pipeline-settings). Marcajele temporale sunt în format ISO 8601.


Listarea oportunităților

GET /deals — returnează oportunitățile din contul tău, începând cu cele mai recente.

Parametri de interogare (toți opționali): stage (un id de etapă), contact_id, limit (implicit 50, maxim 200), cursor (din next_cursor al paginii anterioare).

cURL

curl "https://api.dmchamp.com/v1/deals?apiKey=YOUR_API_KEY&stage=stage-2&limit=50"

JavaScript

const res = await fetch("https://api.dmchamp.com/v1/deals?stage=stage-2&limit=50", {
  headers: { "X-API-Key": "YOUR_API_KEY" },
});
const { deals, next_cursor } = await res.json();

Python

res = requests.get(
    "https://api.dmchamp.com/v1/deals",
    headers={"X-API-Key": "YOUR_API_KEY"},
    params={"stage": "stage-2", "limit": 50},
)
deals = res.json()["deals"]

Răspuns (200)

{ "success": true, "deals": [{ "id": "deal_abc123", "title": "Annual plan – Jane's Clinic", "...": "..." }], "next_cursor": null }

Obținerea unei oportunități

GET /deals/{dealId}

curl "https://api.dmchamp.com/v1/deals/deal_abc123?apiKey=YOUR_API_KEY"

Răspuns (200)

{ "success": true, "deal": { "id": "deal_abc123", "title": "Annual plan – Jane's Clinic", "...": "..." } }

O oportunitate care nu există sau care aparține altui cont va returna 404.


Crearea unei oportunități

POST /dealstitle și stage sunt obligatorii; stage trebuie să fie unul dintre id-urile etapelor fluxului tău de vânzări.

curl -X POST "https://api.dmchamp.com/v1/deals?apiKey=YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "title": "Annual plan – Jane'"'"'s Clinic", "stage": "stage-1", "value": 4800, "contact_id": "ctc_9f8e7d" }'

Răspuns (201)

{ "success": true, "deal_id": "deal_abc123" }

Actualizarea unei oportunități

PUT /deals/{dealId} — trimite doar câmpurile pe care dorești să le modifici (title, description, value, stage, status, priority, contact_id, …). value trebuie să fie un număr.

curl -X PUT "https://api.dmchamp.com/v1/deals/deal_abc123?apiKey=YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "value": 5200, "priority": "high" }'

Răspuns (200): { "success": true, "deal_id": "deal_abc123" }


Mută o afacere într-o altă etapă

POST /deals/{dealId}/move — corp { "new_stage_id": "stage-3", "new_position": 0 }. Poziția 0 plasează cardul în partea de sus a coloanei.

curl -X POST "https://api.dmchamp.com/v1/deals/deal_abc123/move?apiKey=YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "new_stage_id": "stage-3", "new_position": 0 }'

Răspuns (200): { "success": true, "deal_id": "deal_abc123", "stage": "stage-3", "position": 0 }


Șterge o afacere

DELETE /deals/{dealId} — elimină afacerea. Această acțiune nu poate fi anulată.

curl -X DELETE "https://api.dmchamp.com/v1/deals/deal_abc123?apiKey=YOUR_API_KEY"

Răspuns (200): { "success": true }


Pașii următori

  • Pipeline de vânzări — cum funcționează etapele, etichetele de etapă și panoul.
  • API Sarcini — sarcinile pot fi legate de o afacere cu deal_id.
  • Automatizări — pașii Găsește afaceri și Găsește afacere citesc aceleași date în cadrul unui flux de lucru.