A CRM that becomes part of the day.
Interviews, interfaces and a WhatsApp agent to organize sales work. Gradual modernization connected to a legacy ERP.
- 6 of 6eligible salespeople performed core actions in the CRM on 3 or more days, Oct 5 to 9, 2026.
- WhatsApp → CRMAI connected to sales workflows, with human confirmation.
- Excel → C#Pricing migrated and checked with operations.
At a glance
- Problem
- Sales information scattered across messages, spreadsheets and paper, at a company with no technology team and a 20-year-old ERP.
- My part
- Research, product, full stack engineering and AI integration.
- Hard call
- Bring task management, planned for the second phase, forward to the week after launch. Then refocus the next phase around IARA on WhatsApp, which salespeople preferred over forms.
- How I validated
- Adoption measured through work actions in the audit logs: 6 of 6 eligible salespeople on 3 or more days, Oct 5 to 9, 2026. For pricing, a side-by-side comparison with the workbook on a real case.
- What changed
- Tasks, visits and commercial information found a place in the system. Usage shaped the priorities for subsequent releases.
Start with how people work.
Commercial information was scattered across messages, spreadsheets and paper. We needed to preserve history and organize access without asking the team to change its entire workflow at once.
I led seller interviews and turned those needs into CRM priorities. Modernization proceeds area by area, beginning with sales and advancing gradually.
An interview that changed delivery.
Task management was planned for the second phase. The need to centralize commitments came up repeatedly in interviews, so I brought delivery forward to the week after launch.
For contact and company views, I used visual hierarchy, grouped information and photos for recognition. In the calendar, a salesperson could see what she needed to prepare for the following week's trip. She reported that the calendar made it easier to organize preparations without relying on scattered notes.
Open full image
Open full imageMeasure use through work, not logins.
To me, adoption means using the product to work. I count the days each person performed a core action in the CRM, add what came through the interface and through IARA, exclude logins, profile reads and automated processes, and adjust the universe for that week's absences.
In the first measurement, the query included collectors and logins and inflated the result. Fixing that filter came before any conclusion.
In the week of Oct 5 to 9, 2026, 6 of 6 eligible salespeople met the 3-or-more-days criterion. That is one week met, not a proven habit: the next step is sustaining it for four weeks. The data guides conversations with people near the threshold and the priority of the next deliveries.
Game design as an adoption tool.
I come from game development, and the first version of the CRM's gamification rewards habits, not volume. Before designing it, I asked the sales reps. All of them asked for identity, like a photo or avatar on their profile, and on the second day of use two of them opened the CRM just to change their photo, even with a data entry task pending.
Then came a weekly score from 0 to 10, combining the contact entry goal with the quality of contacts and quotes. Each rep sees her own score and what makes it up. I also chose to put the score on a board in the sales room.
Contact entries went from 37 and 160 in the two previous weeks to 231 in the week of Oct 3 to 9, 2026, the first with the board. Of the 160, 122 came from three batches done in a single day, and the board repeated the pattern: two reps hit the weekly goal in one morning. That same day, I changed the rule to count at most 4 entries per business day, rewarding the habit of opening the CRM every day rather than the batch. There were still batches that week, and the effect of the new rule is measured in the weeks ahead.
Natural language as a work interface.
Sellers preferred IARA for form-like tasks. That behavior reshaped the next phase: the agent became a bridge to operating the CRM through WhatsApp.
The flow combines tools, APIs, validation, user access scopes and retry idempotency. Visit reports are summarized and confirmed before being saved.
Inside the CRM, AI also reads each visit report and suggests next-step tasks, each one with the excerpt of the report it came from. A person decides on every suggestion: assigns the right owner and the deadline, or discards it with a reason. Only what they approve becomes a task on someone's schedule, and the CRM keeps the original suggestion next to the decision.
- 01
WhatsApp + IARA
The message is interpreted by the Python and LangGraph agent.
- 02
Human confirmation
The user checks the summary on WhatsApp before saving.
- 03
C# / .NET API
Access scopes, validation and retry idempotency.
- 04
PostgreSQL
A structured report linked to CRM entities.
Follow quality after a change.
After a model change, I noticed that IARA repeatedly revisited its own responses. I rolled back while investigating.
An investigation into conversations that revisited resolved topics showed that history stored responses without tool execution evidence. The fix included that evidence in subsequent turns.
To check it, I ran an experiment with real history and mocked tools, five times per version: without the trace, 4 of 5 responses went back to resolved topics; with the trace, 0 of 5. It is one scenario and a small sample. It shows the effect of the context, not general reliability.
Preserve the meaning of business rules.
The manager needed to compare domestic and imported costs and read the printed cost sheet more clearly. I led the Excel/VBA engine migration to C#, comparing results side by side with the workbook on a real case.
The checks revealed outdated parameters, which we updated with operations. Preserving formulas, fixing defects and updating parameters were separate decisions. The new tool brings cost comparison, editable parameters and structured printing together.
Coexist with a 20-year-old legacy system.
I defined the Brazilian company tax identifier, CNPJ, as a business key, with PostgreSQL uniqueness and relationships through that identity. Creation and import workflows reuse existing records, while normalized searches handle varying input conventions.
For the order mirror, quotation and order numbers identify the document. Updates preserve CRM-owned fields. Modernization advances area by area, maintaining the ERP integration during the transition.

