Przejdź do treści
Intum

Scalanie zdublowanych kontaktów po adresie e-mail

Aktualizacja: 4 min czytania

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 z fields.merged kontaktu 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).