Evidence Summary
- Workflow run
crm-communication-csv-import-contact-20260520T013858Z- Communication
39- Imported contact
AI CSV Import Contact 20260520T013858Zai-comm-csv-import-20260520t013858z@example.net- Recipient row
1179- Parse request
communications/getPesquisaEntidadesCommCSV- Add request
communications/postAddLCommunications
Before You Start
- Open CRM then Operations then Comunications, or navigate to
/crm/communications. - Create or open an email-enabled communication draft.
- Prepare a CSV with the columns
nome;email;localidade;morada;pais;telemovel;ncontrib. - The modal's Exemplo button downloads
/assets/csv/importar_contactos_crm.csv, which uses the same semicolon-separated column order. - This workflow only imports contacts into the communication list. It does not send, send a test email, schedule, create documents, convert leads, upload attachments, or touch stock.
Import the CSV Contact
- Open the communication detail page.
- Click Add Contacts.
- In 1) Source, select Import. OfficeGest uses source value
TipoOrigemEnt=C. - Choose the CSV file in the import file input.
- Click Processar ficheiro to parse the file.
- Review the parsed rows in the import-results table and select the contacts to add.
- Click Adicionar Contactos.
The verified CSV row was parsed into email, nome, localidade, morada, telemovel, pais, ncontrib, and id=0.
Verified Requests
| Step | Request | Verified detail |
|---|---|---|
| Download example | GET /assets/csv/importar_contactos_crm.csv | Returned example columns nome;email;localidade;morada;pais;telemovel;ncontrib. |
| Parse CSV | POST /ajaxserver | Multipart payload used action=communications, option=getPesquisaEntidadesCommCSV, and file field file_import. Response returned success=true and one mailing row. |
| Validate selected import rows | POST /ajaxserver | option=postAddLCommunicationsValidate, MeioUtiliz=M, and user_send_import returned {"success":true,"resultado":""}. |
| Add selected import rows | POST /ajaxserver | option=postAddLCommunications, id=39, email=1, MeioUtiliz=M, MeioUtiliz2=M, TipoOrigemEnt=C, and user_send_import returned success=true, ok=2, and notok=0. |
Confirm the Contact
- Open or refresh the List Comunication tab.
- Confirm
DT_Select_LCommunicationsshows the imported CSV contact row. - Confirm
DT_Select_Communicationsshows one unsent contact.
The verified recipient row was id=1179, id_communication=39, tipoterc=O, uploaded_csv=1, address=ai-comm-csv-import-20260520t013858z@example.net, type=email, enviado=F, and terceiro=AI CSV Import Contact 20260520T013858Z. The communication summary showed totalcontactos=1, resumocontactos=ai-comm-csv-import-20260520t013858z@example.net, total_sent=0, and total_unsent=1.
Cleanup Used in Probe
The verification run deleted disposable communication 39 with communications / DELETE_communication. The delete returned bare JSON true, and the final communication lookup returned recordsFiltered=0.
Artifacts
raw/playwright/workflows/crm-communication-csv-import-contact-20260520T013858Z.jsonassets/screenshots/crm-communication-csv-import-contact-20260520T013858Z-01-communication-before-save.pngassets/screenshots/crm-communication-csv-import-contact-20260520T013858Z-02-add-modal-import-source.pngassets/screenshots/crm-communication-csv-import-contact-20260520T013858Z-03-communication-after-csv-add.pngassets/screenshots/crm-communication-csv-import-contact-20260520T013858Z-04-after-cleanup.png