Technická reference: SmartEmailing¶
Datový model¶
Entity¶
- ContactList (
ContactList): Reprezentuje seznam kontaktů ve SE.smartEmailingId: ID seznamu v API.name,publicName,senderName,senderEmail.
- ContactItem (
ContactItem): Pivotní entita (vazba M:N mezi Kontaktem a Seznamem).contact: Vazba na Kontakt.contactList: Vazba na Seznam.status: Stav (confirmed,unsubscribed,removed, ...).
- Contact (rozšíření):
smartEmailingId: ID kontaktu v API.smartEmailingCustomField...: Dynamicky generovaná pole.
Logika synchronizace¶
CRM -> SmartEmailing (Push)¶
- Trigger:
beforeSavehook nad entitouContact. - Třída:
Espo\Modules\SmartEmailing\Repositories\Contact->updateOrCreateContact. - Mapping: Pevně daný mapping (FirstName, LastName, Address...) + dynamické Custom Fields.
SmartEmailing -> CRM (Pull)¶
- Trigger: Job
SESynchronize. - Třída:
Espo\Modules\SmartEmailing\Tools\SmartEmailing\Client::synchronize. - Logika:
getAllContactLists()-> Update/CreateContactList.getContactsInList()-> Update/CreateContactItem.- Nemění samotná data kontaktu (jméno, email), pouze příslušnost k seznamům.
API Klient¶
Modul používá knihovnu keltuo/php-smartemailing (SmartEmailing API v3).
Wrapper: Espo\Modules\SmartEmailing\Tools\SmartEmailing\Client.