Scalanie kontaktów po e-mailu - API
Aplikacja uruchamia flow o kodzie crm_contacts_merge_1 (kind crm/contacts_merge) i zapisuje wyniki do bazy Noe crm-contacts-merge. Wszystko jest dostępne przez standardowe API Intum, więc podgląd i scalanie można zlecać także z zewnątrz (np. cyklicznie po dużym imporcie). Autoryzacja: Authorization: Bearer TOKEN z uprawnieniem do flow (flows) i baz Noe.
Uruchomienie przebiegu
POST /connect/flows/:flow_id/start.json
Content-Type: application/json
{
"mode": "preview",
"merge_name_conflicts": false,
"merge_external_id_conflicts": false,
"max_groups": 20,
"emails": ["[email protected]", "[email protected]"]
}
| Pole | Wymagane | Opis |
|---|---|---|
mode |
tak |
preview (nic nie zapisuje w CRM) albo merge
|
merge_name_conflicts |
nie | scalaj też grupy z różnymi nazwiskami (default false) |
merge_external_id_conflicts |
nie | wchłaniaj też kontakty z external_id (default false) |
max_groups |
nie | limit grup w jednym przebiegu; pominięte grupy nie liczą się do limitu |
emails |
nie | tylko wskazane adresy (tak działa “Scal zaznaczone”) |
flow_id pobierzesz z GET /connect/flows.json?code=crm_contacts_merge_1. Odpowiedź startu zawiera flow_process.id.
Postęp
GET /connect/flow_processes/:id.json
W config.status_details: stage (running / finished / error), run_id, processed, total_groups, merged, previewed, skipped, errors, removed_contacts, stats, error (przy błędzie, np. gdy inny przebieg jeszcze trwa).
Wyniki w bazie Noe crm-contacts-merge
GET /noe/dbs/crm-contacts-merge/search.json?table_name=runs&sort=-id&limit=30
GET /noe/dbs/crm-contacts-merge/search.json?table_name=groups&filter[run_id]=RUN_ID&filter[status]=preview&limit=100&offset=0
GET /noe/dbs/crm-contacts-merge/search.json?table_name=logs&filter[run_id]=RUN_ID
-
runs- jeden rekord na przebieg:mode,status(running/finished/error),flow_process_id,user_name, flagi,max_groups,emails_count,total_groups,stats,errors_count,started_at,finished_at,error -
groups- jedna grupa e-mail:run_id,email,status(preview,merged,skipped_name,skipped_external_id,error),master/absorbed/kept(skróty kontaktów:id,name,email,phone,external_id,client_id,client_name),conflict_names,lost_external_ids,merged_emails,merged_phones(dodatkowe adresy i telefony zfields.mergedkontaktu głównego),message -
logs-run_id,level(info/error),message,email
Wyniki starsze niż 30 dni są kasowane przy starcie kolejnego przebiegu. Historia scalenia zostaje w polach merged kontaktu głównego (GET /crm/contacts/:id.json).