Conectarea Facebook, Instagram și WhatsApp

Ca să primești mesajele clienților tăi în TSync, îți conectezi propria aplicație Meta. Nu trec prin serverele noastre: conversațiile merg direct între Meta și instalarea ta.

Ghidul e scris pentru cineva care nu a mai umblat prin consola Meta. Durează 20–30 de minute pentru Messenger și Instagram, plus încă 20 pentru WhatsApp.

Sfatul cel mai util din tot ghidul: pentru paginile principale, nu căuta prin meniuri — consola Meta își schimbă des structura, iar aceleași lucruri apar cu nume asemănătoare în locuri diferite. Folosește linkurile directe de mai jos.

Cu o excepție: în interiorul unui caz de utilizare (ecranele Customize) linkurile directe nu funcționează — Meta te mută pe alt caz fără să-ți spună. Acolo se intră doar prin meniu. E explicat la locul lui, mai jos.


Înainte de orice: cele două console Meta

Vei lucra în două locuri diferite, iar confuzia dintre ele e motivul numărul unu pentru care oamenii se blochează.

Consola La ce servește
developers.facebook.com aplicația — produse, permisiuni, chei, webhook-uri
business.facebook.com afacerea — Paginile, conturile WhatsApp, utilizatorii de sistem

La fiecare pas de mai jos îți spunem în care consolă ești.

Îți trebuie ID-ul aplicației (APP_ID) și ID-ul afacerii (BUSINESS_ID). Le vezi în adresa paginii când ești în consolă și le folosești în linkurile de mai jos.


Pasul zero — dacă nu ai încă o aplicație Meta

Sari peste secțiunea asta dacă aplicația ta există deja. Dacă nu, restul ghidului nu are de unde să înceapă: toate cheile de mai jos vin dintr-o aplicație pe contul tău.

De ce e a ta și nu a noastră. Am fi putut face o singură aplicație TSync, comună tuturor clienților — te-ai fi conectat în 60 de secunde. Am ales altfel, deliberat: mesajele tale ar fi trecut atunci prin infrastructura noastră, ceea ce ne-ar transforma în procesator al datelor tale. Așa, conversațiile merg direct de la Meta la instalarea ta, iar noi nu le vedem niciodată. Costul e sfertul de oră de mai jos, o singură dată.

Meta permite explicit asta fără verificare specială, atât timp cât aplicația servește propria ta pagină. Verificarea Meta e necesară pentru cine vrea acces la paginile altora — nu e cazul tău.

Îți trebuie: un cont Facebook personal cu care administrezi pagina (din contul paginii nu se poate), rol de administrator pe pagina firmei, opțional contul Instagram profesional legat de pagină, și adresa instalării tale de TSync cu HTTPS valid.

Sfat care economisește ore: parcurge tot procesul într-o fereastră incognito, fără extensii de browser. Consola Meta se blochează frecvent din cauza extensiilor — panouri care nu se încarcă, butoane care nu răspund, iar eroarea afișată nu spune niciodată asta.

1. Creezi aplicația

developers.facebook.comMy AppsCreate App. Nume recognoscibil (ex. „Firma ERP Connector"), iar la adresa de contact pune una pe care o citești — acolo îți trimite Meta avertismentele.

2. Completezi datele de bază

App settings → Basic:

Câmpul Ce pui
App domains domeniul tău, ex. firma.ro
Privacy policy URL pagina ta de politică de confidențialitate — obligatorie
Terms of Service URL pagina de termeni
User data deletion adresa politicii, ca „Data deletion instructions URL"
App icon logo pătrat, minim 1024×1024, fără transparență
Category Business and Pages

Dacă încărcarea iconiței dă „Something went wrong", aproape sigur e o extensie de browser, nu iconița. Încearcă din incognito.

3. Adaugi cazurile de utilizare

Use cases → Add use cases. Ai nevoie de trei:

  • Engage with customers on Messenger — mesaje pe Facebook;
  • Manage messaging & content on Instagram — mesaje și comentarii Instagram;
  • Manage everything on your Page — comentariile de pe pagina Facebook.

Nu adăuga altele „ca să fie". Fiecare caz lărgește suprafața de permisiuni, iar dacă vreodată ajungi la verificare Meta, fiecare permisiune trebuie justificată separat. Cu cât ceri mai puțin, cu atât e mai simplu.

4. Activezi permisiunile

Pentru fiecare caz: Customize → Permissions and features, apoi Add la fiecare din listă.

Permisiunea Pentru ce
pages_show_list să vadă lista paginilor tale
pages_messaging mesaje Messenger
pages_manage_metadata abonarea la notificări
pages_read_engagement ce a publicat pagina ta
pages_read_user_content comentariile vizitatorilor
pages_manage_engagement să ascunzi, ștergi sau răspunzi la comentarii
instagram_basic contul Instagram
instagram_manage_messages mesaje directe Instagram
instagram_manage_comments comentarii Instagram
business_management administrarea contului de business

Deosebirea dintre ultimele două de tip read merită reținută: pages_read_engagement îți dă ce a publicat pagina ta, iar pages_read_user_content comentariile vizitatorilor. Sunt lucruri diferite pentru Meta, iar lipsa celui de-al doilea e motivul obișnuit pentru care „comentariile nu se văd".

Capcană verificată: butonul Add dă uneori „Something went wrong" deși permisiunea chiar s-a adăugat. Nu apăsa la nesfârșit — reîncarcă pagina și uită-te la stare. Dacă scrie „Ready for testing", e în regulă.

5. Iei tokenul paginii și app_secret

Tools → Graph API Explorer, selectezi aplicația ta, bifezi permisiunile de mai sus, Generate Access Token, parcurgi dialogul Facebook. Apoi rulezi me/accounts?fields=id,name,access_token — de acolo iei page_id și page_access_token.

Tokenul trebuie să fie de lungă durată. Cel obținut direct în Explorer expiră în 1–2 ore, iar conexiunea ta ar muri tăcut a doua zi. Un token de pagină obținut dintr-un token de utilizator de lungă durată nu expiră niciodată.

app_secret se ia din App settings → Basic, apăsând Show (îți cere parola de Facebook).

Cu astea patru — page_id, page_access_token, app_secret și un verify_token inventat de tine — treci la partea următoare.

6. Când abonezi webhook-ul, nu uita messaging_referrals

La abonarea câmpurilor (mai jos, la webhook) apar messages, messaging_postbacks, messaging_referrals și feed. messaging_referrals e cel care aduce atribuirea publicitară — fără el nu vei ști din ce reclamă a venit o conversație, iar asta nu se poate recupera retroactiv.


Partea 1 — Messenger și Instagram

Ce îi dai lui TSync

Mergi în Omnichannel → Conturi, apeși „+ Cont nou" și alegi canalul Messenger / Instagram Direct. Ai de completat patru câmpuri:

Câmpul din TSync De unde vine
page_id ID-ul Paginii tale de Facebook
page_access_token tokenul Paginii, din consola aplicației
app_secret App settings → Informații generale
verify_token îl inventezi tu — orice șir lung, aleatoriu

⚠️ Pentru un cont nou apasă mereu „+ Cont nou", niciodată „Editează". Formularul de creare și cel de editare sunt același formular. Dacă schimbi canalul în timp ce ești pe „Editează", salvarea transformă contul existent în loc să creeze unul nou.

După ce salvezi contul, TSync îți afișează URL-ul de webhook. Pe acela îl lipești în Meta, împreună cu verify_token-ul pe care l-ai ales.

app_secret — și de ce nu ți-l cere nimeni altcineva

developers.facebook.com/apps/APP_ID/settings/basic/

Apeși Afișează lângă App Secret. Meta îți cere parola contului tău.

Nimeni — nici noi, nici un consultant — nu trebuie să-ți ceară parola. Dezvălui tu valoarea și o lipești direct în TSync.

De reținut: TSync nu îți arată secretele înapoi. Când redeschizi un cont ca să-l editezi, câmpurile de secret apar goale. Nu s-a pierdut nimic — sunt salvate, doar că nu se afișează, ca să nu poată fi citite de pe ecran.

Pasul pe care îl ratează toată lumea

Meta are două niveluri de abonare la evenimente, iar consola îți arată doar unul:

  • bifezi un câmp în consola aplicației → ai abonat aplicația;
  • Pagina ține o listă separată și nu primește un câmp adăugat după ce a fost conectată.

Când cele două nu se potrivesc, câmpul pare pornit și pur și simplu nu ajunge nimic — fără nicio eroare, nicăieri. E o tăcere, nu o defecțiune, și de asta e atât de greu de găsit.

Nu trebuie să te ocupi tu de asta. Deschide Omnichannel → Sănătate. Acolo TSync întreabă direct Meta ce câmpuri primește Pagina ta și îți arată lista. Dacă vreunul scrie „nu livrează", apare butonul „Abonează Pagina la câmpurile lipsă" — apasă-l și gata.

Butonul păstrează și abonamentele pe care le aveai deja (de exemplu feed), nu le înlocuiește.


Partea 2 — WhatsApp

Decizia care se ia prima, nu ultima

Un număr folosit în aplicația WhatsApp nu poate fi conectat prin API cât timp e acolo.

Ca să-l muți, trebuie să ștergi contul WhatsApp de pe acel număr — iar atunci:

  • istoricul conversațiilor se pierde;
  • numărul nu se mai poate întoarce în aplicație decât dacă îl scoți din API.

Ai două variante:

Ce se întâmplă
A. Numărul tău devine număr de API Ștergi contul WhatsApp de pe el (fă backup la conversații întâi). Nu-l mai poți folosi din aplicație.
B. Iei un număr nou pentru API Numărul tău actual rămâne exact cum e.

Recomandăm varianta B. Un număr dedicat nu creează confuzie cu cineva care răspunde de pe telefon, iar decizia rămâne reversibilă.

WhatsApp Web nu ajută. web.whatsapp.com e doar o oglindă a telefonului tău — aceeași aplicație, alt ecran. Nu are API și nu se poate conecta. La fel, business.whatsapp.com nu e o consolă, ci o pagină de prezentare.

Probează întâi cu numărul de test — gratuit, fără să ștergi nimic

Meta îți dă un număr de test care poate scrie către maximum 5 numere declarate de tine. Cu el verifici că totul funcționează fără să atingi numărul tău real.

Fă asta înainte de decizia de mai sus. Așa alegi la sfârșit, cu lucrurile deja dovedite.

developers.facebook.com/apps/APP_ID/use_cases/Connect with customers through WhatsAppCustomizeStep 1. Try it out

  1. Îți alege singur portofoliul de afaceri. Apeși Continue.

    ⚠️ Butonul acesta acceptă termenii Meta pentru WhatsApp Business — un angajament al firmei tale, nu o simplă setare. Citește-l înainte.

  2. Apeși Claim test number. Ți se creează contul de WhatsApp și numărul.

⚠️ Dacă zona din dreapta rămâne albă, nu reîncărca pagina — nu asta e problema.

Adresele care duc direct în interiorul unui caz de utilizare (…/use_cases/customize/…) nu se țin: Meta te aruncă înapoi pe cazul implicit, de obicei Messenger, iar panoul WhatsApp nu apare niciodată. Nu e o încărcare lentă și nu se rezolvă cu răbdare.

Ce funcționează: te întorci la developers.facebook.com/apps/APP_ID/use_cases/ și apeși Customize chiar pe rândul Connect with customers through WhatsApp. De acolo, meniul din stânga te duce corect oriunde.

Aceeași regulă e valabilă pentru Permissions and features, Step 1 și restul: se ajunge prin meniul panoului, nu prin adresă directă.

„No phone numbers available for this app" — nu înseamnă ce pare

Propoziția asta apare sub Step 1 și se citește ca contul nu are niciun număr. Aproape niciodată nu asta spune. Ea răspunde la altceva: ce vede aplicația. Numărul poate sta liniștit în WhatsApp Manager, vizibil într-o altă filă, în timp ce aplicația nu-l vede deloc — pentru că aplicația nu e legată de contul de WhatsApp.

Sunt două legături, iar consola arată doar una:

Ce spune Unde se face
Webhook unde să livreze Meta consola aplicației
Abonarea aplicației la cont să livreze, în general prin API — sau din TSync

Fără a doua, nu ajunge nimic și Meta nu raportează nicio eroare. Apeși Claim test number și nu se întâmplă nimic, de câte ori vrei.

TSync o rezolvă singur. Completează ID-ul contului WhatsApp Business pe cont (Omnichannel → Conturi → Editează), apoi deschide Omnichannel → Sănătate. Acolo vezi:

  • dacă aplicația e abonată la cont — și un buton care o abonează;
  • ce numere vede aplicația, cu tot cu phone_number_id (nu mai trebuie copiat de mână din consolă).

Lista goală, sub o interogare reușită, înseamnă legătura lipsește. O eroare la interogare înseamnă altceva — permisiuni. Pagina Sănătate le spune separat, pentru că se rezolvă diferit.

ID-ul contului WhatsApp Business îl găsești în WhatsApp Manager, în adresa paginii, la asset_id=…, sau în Business Settings → Conturi WhatsApp, sub numele contului.

Trei lucruri diferite care sună la fel

Până să plece primul mesaj, WhatsApp cere trei lucruri separate. Consola nu le arată pe niciunul, iar când lipsesc, mesajele de eroare seamănă între ele destul cât să te trimită pe drum greșit. TSync le ține separate, în Omnichannel → Sănătate:

Ce lipsește Ce vezi în TSync Ce faci
Aplicația nu e abonată la cont Aplicație neabonată butonul Abonează aplicația la acest cont
Numărul nu e înregistrat la Cloud API Număr neînregistrat butonul Înregistrează numărul, cu un PIN de șase cifre
Destinatarul nu e permis (doar la numere de test) eroarea (#131030) la testul de trimitere vezi mai jos

PIN-ul de șase cifre nu e o formalitate. Devine PIN-ul de verificare în doi pași al numărului, iar WhatsApp îl cere pe același la orice reînregistrare ulterioară. TSync îl păstrează pe cont ca să nu se piardă.

„Trimite un test" — cel mai scurt drum către răspunsul corect

În același panou e un câmp de număr și un buton Trimite un test. Trimite un mesaj real și îți arată exact ce a răspuns Meta, cu cuvintele ei și cu codul de eroare — nu o reformulare de-a noastră.

Lasă textul gol și se trimite șablonul hello_world, preaprobat pe orice cont și valabil în afara ferestrei de 24 de ore. Așa, un eșec spune ceva despre cont, nu despre conversație.

Merită folosit înainte de a căuta cauza prin meniuri: consola descrie stări, testul produce fapte.

Pagina de Sănătate ține minte răspunsurile Meta două minute și spune cât de vechi sunt. E intenționat: pagina pe care o deschizi fiindcă ceva e în neregulă cu Meta e tocmai pagina cu cele mai mari șanse să fie lentă când ceva e în neregulă cu Meta, iar patru întrebări cu câte o răbdare lungă fiecare adună mai mult decât permite serverul tău web — ai vedea pagina lui de eroare, nu pe a noastră. După ce schimbi ceva la Meta, apasă Citește din nou acum în loc să te iei după o citire veche de până la două minute. Acțiunile pe care le apeși tu — înregistrarea unui număr, crearea unui șablon — își păstrează răbdarea lungă: acolo așteaptă un om un rezultat, nu se desenează o pagină.

Șabloanele: cum scrii tu primul

Pe un număr real, poți răspunde liber 24 de ore după ce ți-a scris clientul. Ca să scrii tu primul, ai nevoie de un șablon aprobat de Meta.

Omnichannel → Șabloane WhatsApp îți arată tot ce ai, cu starea reală: APPROVED (se poate trimite), PENDING (în analiză, de obicei câteva minute) sau REJECTED — caz în care apare și motivul dat de Meta, singura propoziție care spune ce e de schimbat.

Tot de acolo creezi unul nou, în română, rusă și engleză dintr-o singură apăsare. Ce e bine de știut:

  • Numele e comun celor trei limbi: litere mici, cifre și liniuță de subliniere.
  • Categoria contează. UTILITY înseamnă „despre o solicitare sau o comandă existentă". Meta reclasifică singură ce trimiți și refuză nepotrivirile — un text cu „nr. {{2}}" a fost citit drept cod de verificare și respins înainte de a pleca.
  • Variabilele se scriu {{1}}, {{2}} și nu pot sta la începutul sau la sfârșitul mesajului.
  • Valorile de exemplu sunt obligatorii, câte una per variabilă. Meta analizează mesajul completat, nu scheletul. Inventează-le: ajung la Meta, deci niciodată datele unui client real.
  • O limbă lăsată goală pur și simplu nu se creează, iar fiecare limbă primește verdictul ei separat.

Odată ce unul e aprobat, apasă Importă-le pe cele aprobate. Îl copiază în biblioteca proprie a TSync, ca să poată fi trimis dintr-o conversație sau dintr-o campanie fără ca nimeni să retasteze numele — numele trebuie să se potrivească exact cu al Meta, iar o singură greșeală de tastare răspunde „niciun șablon" la trimitere și nu explică nimic mai departe. Se importă doar cele aprobate, iar o rulare repetată reîmprospătează, nu dublează.

Numărul de test: are o listă de destinatari

Un număr de test poate trimite doar către numere adăugate în prealabil (maximum 5), din panoul Step 1 al aplicației Meta. Dacă panoul acela nu îți afișează numărul — se întâmplă — numărul de test rămâne bun doar pentru mesaje primite. Pentru trimiteri către oricine, treci la Step 2. Production setup cu un număr real.

Un număr real nu poate fi folosit în aplicația WhatsApp în același timp. Vezi decizia de mai sus, la partea despre alegerea numărului: e ireversibilă și merită luată o singură dată, corect.

Unde găsești phone_number_id

Nu e numărul de telefon. E un cod de vreo 16 cifre, iar dacă le confunzi eroarea nu-ți spune care e problema.

business.facebook.com/latest/whatsapp_manager/phone_numbers/?business_id=BUSINESS_ID

Apeși rotița ⚙ de pe rândul numărului. În panoul care se deschide scrie textual „ID număr de telefon: …". Aceea e valoarea.

Tokenul: alege-l pe cel care nu expiră

Cât ține Unde
Token temporar 24 de ore Step 1. Try it out
Utilizator de sistem permanent Business Settings

Cu tokenul temporar, integrarea merge azi și pare stricată mâine. Merită cele câteva minute în plus.

business.facebook.com/latest/settings/system_users/?business_id=BUSINESS_ID

  1. Adaugă → nume la alegere (de exemplu tsync-omnichannel), rol Employee (nu e nevoie de Admin).

    La prima adăugare, Meta îți cere să accepți o politică în numele utilizatorilor de sistem. E tot un angajament al firmei tale.

  2. Atribuie active — de făcut de două ori, altfel pasul următor se blochează:

    • Conturi WhatsApp → contul tău → permisiunea Mesaje;
    • Aplicații → aplicația ta → Dezvoltă aplicația.
  3. Generează un cod → alegi aplicația → expirare Niciodată → permisiunile WhatsApp.

Dacă vrei vreodată să retragi accesul, butonul Revocă codurile e pe același utilizator de sistem.

Ce îi dai lui TSync

Omnichannel → Conturi → „+ Cont nou", canalul WhatsApp: phone_number_id, ID-ul contului WhatsApp Business, tokenul, app_secret și verify_token-ul ales de tine.

ID-ul contului nu e decorativ: fără el, TSync nu poate nici să verifice, nici să repare legătura de mai sus.


Pasul final — publică aplicația, altfel nu primești nimic

Aplicația Meta se creează în modul „Dezvoltare" (Development). În acest mod livrarea e limitată și nesigură: Meta o permite doar persoanelor cu un rol pe aplicație (administrator, dezvoltator sau tester), iar chiar și accesul de tester e limitat în timp și expiră — un mesaj care ajungea săptămâna trecută poate să nu mai ajungă azi, fără să fi schimbat tu nimic. Iar consola Meta afișează acum, pe ecranul de webhook al Paginii: „No production data, including from app admins, developers or testers, will be delivered unless the app has been published." Oricare ar fi regula exactă la un moment dat, concluzia practică e una singură: până nu publici aplicația, Messenger și Instagram nu livrează de încredere — de multe ori nu livrează deloc.

Efectul e exact tăcerea de care ne ferim peste tot în ghidul ăsta: configurezi totul corect, trimiți un mesaj de test — și nu apare nimic în inbox, fără nicio eroare. Nu e stricat nimic; aplicația e doar nepublicată.

Publicarea:

  1. developers.facebook.com/apps/APP_ID/ → în meniul din stânga, Publică (are badge-ul Unpublished).
  2. Dacă scrie „All required app settings are complete", apeși butonul Publish (dreapta-jos).
  3. Meta confirmă „Your app was successfully published", iar badge-ul devine Published.

Comutarea e reversibilă — același loc are apoi butonul Unpublish.

Nu ai nevoie de App Review și nici să devii „Tech Provider" cât timp aplicația servește propria ta Pagină. Acelea sunt cerute doar dacă o singură aplicație ar servi paginile ALTOR firme — nu e cazul tău, și tocmai de asta fiecare firmă își face propria aplicație.

WhatsApp face excepție: el livrează și în modul Dezvoltare, așa că dacă folosești doar WhatsApp, pasul acesta nu te blochează. Dar pentru Messenger și Instagram publicarea e obligatorie — e ultimul lucru de făcut înainte de test.


Cum știi că a funcționat

  1. Omnichannel → Sănătate — toate câmpurile scriu „livrează", iar sus nu apare niciun avertisment.
  2. Trimite-ți un mesaj de pe telefon către Pagină. Trebuie să apară în Inbox Omnichannel în câteva secunde.
  3. Răspunde din TSync. Mesajul trebuie să ajungă pe telefon.
  4. Răspunde de pe telefon la mesajul trimis de tine. În fir trebuie să se vadă la ce mesaj ai răspuns.

Dacă pasul 4 arată „Ca răspuns la un mesaj mai vechi" în loc de textul mesajului, deschide Sănătate: înseamnă aproape sigur că Paginii îi lipsește un câmp, iar butonul de acolo îl rezolvă.

Dacă pe WhatsApp nu ajunge nimic — nici măcar primul mesaj — deschide tot Sănătate: dacă scrie aplicație neabonată, ăsta e motivul, iar butonul de acolo îl rezolvă.


Ce ține de tine și nu poate face nimeni în locul tău

  • Parola contului Meta — cerută pentru a afișa app_secret. Nu o da nimănui.
  • Acceptarea termenilor Meta pentru WhatsApp Business și a politicilor pentru utilizatorii de sistem — sunt angajamente ale firmei tale.
  • Ștergerea contului WhatsApp de pe un număr, dacă alegi varianta A — e ireversibilă și duce la pierderea istoricului.

Restul îl poate face administratorul tău TSync.