CRM Data Ingest - API
Bufor importów danych klientów. Autoryzacja: Authorization: Bearer TOKEN z uprawnieniem automation_import (token można ograniczyć wyłącznie do tego uprawnienia). Throttle: 2000 requestów/min per konto - operacje masowe wysyłaj batchami.
Wysyłka
POST /automation/import_batches.json
{
"kind": "crm_clients",
"source_code": "moj_system",
"batch_id": "unikalny-id-batcha",
"clients": [
{
"external_id": "123",
"name": "Firma Przykładowa",
"email": "[email protected]",
"tax_no": "5551112233",
"fields": { "plan": "premium", "saldo": 199.99 }
}
]
}
| Pole | Wymagane | Opis |
|---|---|---|
kind |
nie | obecnie tylko crm_clients (default) |
source_code |
tak | stała nazwa źródła [a-z][a-z0-9_]* - przestrzeń identyfikatorów external_id; nie zmieniać po starcie |
batch_id |
nie | klucz idempotencji retry (duplikat -> "duplicate": true); bez niego hash treści |
clients[].external_id |
tak | id klienta w systemie źródłowym |
clients[].fields |
nie | pola własne - zapisywane tylko klucze zdefiniowane w Automation::CustomField; nieznane pomijane i zliczane |
Limit: 5000 rekordów na request. Odpowiedź: 202 Accepted + { status, accepted, batch_id, duplicate }. Przetwarzanie asynchroniczne (flow z debouncem + godzinowy cron-backstop). Wysyłaj pełny aktualny stan klienta, nie delty - dedup po external_id w batchu, ostatni stan wygrywa.
Pola stałe klienta: name, shortcut, first_name, last_name, company, email, phone, mobile_phone, www, tax_no, register_number, street, post_code, city, province, country, note, description, kind.
Podgląd i konfiguracja
GET /automation/import_batches.json?processed=false&source_code=... # batche w buforze
GET /automation/import_batches/:id.json # pojedynczy batch
GET /automation/import_batches/settings.json # konfiguracja, pola własne, źródła, statystyki
PATCH /automation/import_batches/settings.json # { "settings": { "duplicate_policy": "match_tax_no|match_contacts|external_id_only", "update_existing": true, "batch_size": 2000 } }