CRMconnect Azuvio · Docs

Tok rada: WhatsApp → Lid / Podrška

Uključeni moduli: WhatsApp (Inbox · Botovi · Kampanje · Šabloni) · WhatsApp API (Obaveštenja o događajima) · Lidovi · Tiketi · Marketinška automatizacija
Ko ga koristi: Prodaja · Korisnička podrška · Marketing
Tipično trajanje: U realnom vremenu (dolazne poruke) + ciklus kampanje (jednokratne/periodične)

Pregled

CRMConnect ima tri različita WhatsApp modula sa potpuno različitim svrhama:

Modul Svrha Zahteva Meta API?
whatsapp Dvosmeran inbox, botovi, masovne kampanje, auto-lid Da — kompletno podešavanje
whatsapp_api Odlazna obaveštenja na CRM događaje (kreiran lid, faktura, tiket, itd.) Da — deljeni akreditivi
whatsapp_chat Ugrađeni widget za klik-na-čet (HTML snippet treće strane) Ne — bez sopstvenog API-ja

Ovaj tok rada pokriva glavni whatsapp modul (inbox + auto-lid + botovi + kampanje) i whatsapp_api (obaveštenja o događajima).

Napomena: Automatsko kreiranje tiketa iz WhatsApp razgovora je delimično implementirano (AI prikuplja podatke, ali insert u tbltickets nedostaje iz koda). Tikete ručno kreiraju zaposleni iz interfejsa za čet.


Dijagram toka

[PODEŠAVANJE — admin, samo jednom]
  │
  ├── Meta App + WhatsApp Business nalog konfigurisan
  ├── Webhook registrovan kod Meta: {site_url}/whatsapp/webhook/getdata
  ├── Broj telefona povezan u WhatsApp → Brojevi
  ├── Šabloni učitani iz Meta (ručna sinhronizacija ili cron na sat)
  └── Auto-lid omogućen (opciono): whatsapp_auto_lead_settings = 'enable'
  │
  ↓
[DOLAZNA PORUKA]
  │
  ├── Meta šalje webhook POST na /whatsapp/webhook/getdata
  ├── Sistem pretražuje broj u: lidovima → kontaktima → zaposlenima
  │
  ├── BROJ IDENTIFIKOVAN → mapira razgovor na postojeći zapis
  │     rel_type = 'leads' / 'contacts' / 'staff'
  │
  └── NEPOZNAT BROJ:
        ├── auto_lead OMOGUĆEN → automatski kreira Lid
        │     status = whatsapp_lead_status
        │     izvor = whatsapp_lead_source
        │     dodeljen = whatsapp_lead_assigned
        │     rel_type = 'leads'
        │
        └── auto_lead ONEMOGUĆEN (podrazumevano) → rel_type = 'general'
              zaposleni vidi razgovor kao nepoznat u inboxu
  │
  ↓
[BOT (ako je aktivan)]
  │
  ├── BotHandler::processBots() procenjuje SVE aktivne botove
  ├── Podudaranje okidača → šalje automatski odgovor (tekst / šablon / meni / AI)
  └── Nema podudaranja → poruka ostaje u inboxu za ručni odgovor
  │
  ↓
[ODGOVOR ZAPOSLENOG / ESKALACIJA]
  │
  ├── Zaposleni otvara /admin/whatsapp → inbox
  ├── Vidi razgovore grupisane: identifikovani (lid/kontakt) + opšti
  ├── Odgovara direktno ili koristi Brze odgovore
  └── Ručno kreira tiket iz razgovora (ako podrška to zahteva)
  │
  ↓
[MASOVNA KAMPANJA (odvojen tok)]
  │
  ├── Kreiran odobreni Meta šablon
  ├── Nova kampanja: tip (jednokratna/periodična/prilagođena), primaoci, broj pošiljaoca
  ├── send_now=1 ili planirano scheduled_send_time
  └── Cron izvršava slanje → status po primaocu: neuspešno(0) / uspešno(2) / nevažeće(3)
  │
  ↓
[OBAVEŠTENJA O DOGAĐAJIMA — modul whatsapp_api]
  │
  ├── Kreiran lid → šablon mapiran na kategoriju 'leads' šalje se automatski
  ├── Kreiran tiket → šablon mapiran na 'ticket' šalje se automatski
  ├── Dodata faktura → šablon mapiran na 'invoice'
  └── Evidentirana uplata → šablon mapiran na after_payment_added

[RAZGOVOR ZATVOREN / LID KVALIFIKOVAN ✓]

Korak po korak

1. Podešavanje Meta + veza (admin)

Gde: /admin/whatsapp → Podešavanja → kartica Veza

Uslov: Sva polja ispod su dostupna samo za is_admin() — obično osoblje nema pristup.

Polje / Opcija Opis
whatsapp_business_id Meta Business ID (iz Meta Business Suite)
whatsapp_business_account_id WABA ID (WhatsApp Business nalog)
whatsapp_access_token Trajni token sistemskog korisnika (ne privremeni korisnički token)
whatsapp_webhook_token Bilo koji string po vašem izboru — koristi se za Meta verifikaciju webhook-a
whatsapp_meta_app_id ID aplikacije iz Meta for Developers
whatsapp_meta_app_secret App Secret iz Meta for Developers

URL webhook-a za registraciju kod Meta:

{site_url}/whatsapp/webhook/getdata

Potrebne Meta pretplate: messages + message_status_updates.

Brojevi telefona: nakon povezivanja akreditiva, brojevi se dodaju u WhatsApp → Brojevi (putem OAuth-a ili ručno). Postavite jedan broj kao podrazumevani za odlazne poruke.

Šabloni: WhatsApp → Šabloni → Učitaj šablone (sinhronizuje sa Meta). Cron automatski osvežava na sat.


2. Konfiguracija auto-lida (opciono)

Gde: /admin/whatsapp → Podešavanja → kartica Auto Lid

Opcija Opis
whatsapp_auto_lead_settings 'enable' aktivira automatsko kreiranje · 'disable' (podrazumevano) deaktivira
whatsapp_lead_status ID statusa lida (iz /admin/leads_status) postavlja se pri kreiranju
whatsapp_lead_source ID izvora lida (iz /admin/leads_sources) postavlja se pri kreiranju
whatsapp_lead_assigned staffid zaposlenog kome se lid automatski dodeljuje

Tok identifikacije broja (po redosledu):

  1. Pretraga u tblleads.phonenumber (normalizovano bez nenumeričkih znakova)
  2. Pretraga u tblcontacts.phonenumber
  3. Pretraga u tblstaff.phonenumber
  4. Nema podudaranja → kreiranje lida (ako je auto_lead omogućen) ili ostaje kao general

3. Konfiguracija bota (opciono)

Gde: /admin/whatsapp → Botovi → Novi bot

Tipovi okidača (reply_type):

Vrednost Okidač
1 Tačno podudaranje poruke sa ključnom rečju trigger
2 Poruka sadrži ključnu reč trigger
3 Prva poruka u istoriji razgovora
4 Podudaranje ključnih reči (uključujući sinonime)
5 Poruka u toku radnog vremena (trigger = "09:00-17:00")
6 Poruka van radnog vremena
7 Prva poruka u tekućoj sesiji (prozor od 24h)
8 Korisnik neaktivan X minuta
9 Korisnik zahteva živog agenta
10 Podudaranje sinonima
11 Podsetnik za istek razgovora
12 Nema odgovora zaposlenog X minuta
13 Razgovor zatvoren + zahtev za ocenu

Tipovi odgovora (bot_type):

Vrednost Odgovor
1 Običan tekst
2 Odobreni Meta šablon
3 Meni liste (višestepeni, stanje se čuva u interaction_menu_state)
4 Bot toka (JSON graf čvorova u flow_data)
5 Medijski fajl
6 GPS lokacija
7 Interaktivna dugmad
11 Kontaktna kartica
12 AI odgovor (OpenAI / Gemini — zahteva konfigurisani API ključ)
13 Ocena zvezdama

Konfiguracija AI (za bot_type=12): Gde: Podešavanja → kartica AI: izaberite provajdera (openai/gemini), unesite API ključ, postavite whatsapp_openai_status:

  • auto = AI automatski odgovara na sve poruke koje nemaju podudaranje na drugim botovima
  • manual = AI generiše predlog odgovora vidljiv zaposlenima, ali ne šalje automatski

4. Inbox i ručni odgovor

Gde: /admin/whatsapp (zahteva dozvolu whatsapp_chat → view)

Razgovori su grupisani po rel_type:

  • leads — razgovori povezani sa lidovima
  • contacts — razgovori povezani sa kontaktima
  • staff — razgovori sa zaposlenima
  • general — neidentifikovani brojevi (auto_lead onemogućen)

Zaposleni mogu:

  • Odgovoriti tekstom, fajlovima, Brzim odgovorima (tblquick_replies)
  • Dodeliti razgovor drugom zaposlenom
  • Ručno kreirati Tiket iz interfejsa (tiket se NE kreira automatski)
  • Pregledati kompletnu istoriju poruka (tblwhatsapp_interaction_messages)

5. Masovne kampanje

Gde: /admin/whatsapp → Kampanje → Nova kampanja

Preduslovi:

  • Odobreni Meta šablon (status = 'APPROVED' u tblwhatsapp_interaction_templates)
  • Barem jedan konfigurisani broj telefona

Polja kampanje:

Polje Opis
name Naziv kampanje
rel_type Primaoci: leads · contacts · whatsapp_groups · whatsapp_contacts
template_id Odobreni Meta šablon
number_id Broj pošiljaoca (iz tblwhatsapp_numbers)
campaign_type onetime · recurring · custom
auto_reminder_days Dani između slanja (za recurring)
scheduled_send_time Planirani datum/vreme
send_now 1 = pošalji odmah pri izvršavanju crona

Statusi po primaocu (tblwhatsapp_campaign_data):

status Značenje
0 Neuspešno (greška API-ja)
2 Uspešno — poruka poslata
3 Nevažeći broj

Statusi isporuke (message_status): sentdeliveredread

Napomena: Kampanje izvršava cron, ne odmah. Ako CRM cron ne radi, planirane kampanje se ne šalju.


6. Automatska obaveštenja o CRM događajima (modul whatsapp_api)

Gde: /admin/whatsapp_api → Mapiranje šablona

Modul whatsapp_api se aktivira nezavisno od inboxa, na osnovu hook-ova:

CRM Hook Kategorija šablona
lead_created leads
web_to_lead_form_submitted leads
contact_created contacts
after_invoice_added invoice
after_add_task task
after_add_project project
proposal_created proposal
after_payment_added payment
ticket_created ticket
after_cron_run Planirani podsetnici

Konfiguracija po obaveštenju:

  1. Sinhronizujte šablone: WhatsApp API → Šabloni → Učitaj
  2. Kreirajte mapiranje: WhatsApp API → Mapiranje šablona → Dodaj
  3. Odaberite šablon + kategoriju + send_to (kontakt / lid / zaposleni) + parametre zaglavlja/tela/podnožja

Modul whatsapp_api deli Meta akreditive sa modulom whatsapp (isti access_token i phone_number_id), ali ih čuva odvojeno u sopstvenim opcijama.


Potrebne dozvole

Dozvola Pristup
whatsapp_chat → view Pristup inboxu (čitanje + slanje poruka)
whatsapp_bot → view/create/edit/delete Upravljanje botovima
whatsapp_template → view / load_template Pregled i sinhronizacija šablona
whatsapp_campaign → view/create/edit/delete Upravljanje kampanjama
whatsapp_numbers → view/edit Pregled/izmena brojeva
whatsapp_contacts → view/create/edit/delete Upravljanje WhatsApp kontaktima
whatsapp_groups → view/create/edit/delete Upravljanje grupama
whatsapp_log_activity → view/clear_log Pregled loga aktivnosti API-ja
quickreplies → view/create/edit/delete Brzi odgovori
Podešavanja veze (Meta akreditivi) Isključivo is_admin()
Podešavanja WhatsApp Chat vidžeta Isključivo is_admin()

Česte greške

Problem Uzrok Rešenje
Meta webhook ne prima poruke Netačan URL ili nepodudarajući token Proverite da je {site_url}/whatsapp/webhook/getdata javno dostupan i da se token podudara
Lidovi se ne kreiraju automatski whatsapp_auto_lead_settings je 'disable' (podrazumevano) Eksplicitno omogućite iz Podešavanja → Auto Lid
Bot ne odgovara is_bot_active = 0 ili okidač se ne podudara Omogućite bota i proverite uslov okidača (tačno podudaranje vs. sadrži)
Kampanja nije poslata u zakazano vreme CRM cron ne radi Proverite /admin/misc/cron_jobs — cron mora biti aktivan
Šablon se ne pojavljuje u kampanji Status u Meta nije APPROVED Proverite status u Meta Business Manageru; ponovo učitajte šablone
Obaveštenja whatsapp_api se ne šalju phone_number_id nije postavljen u modulu whatsapp_api Konfigurišite akreditive odvojeno u WhatsApp API → Podešavanja
Tiket nije kreiran iz razgovora Automatsko kreiranje nije implementirano Zaposleni mora ručno da kreira tiket iz interfejsa za čet

Reference modula