Where it started
When a customer conversation sits outside the CRM, the team has to piece together what was sent, who can act, and whether a reply arrived. Adding a send button only solves one part of that workflow.
The boundary that matters
Keep the conversation in the CRM and separate intent from delivery. Permission checks happen before enqueueing, while webhook processing reconciles status and incoming replies.
- 01CRMAuthorized message intent
- 02QueueDelivery and retries
- 03ConnectorText conversation
- 04FeedbackStatus and replies
What I worked on
- An internal connector adapting the existing Frappe CRM WhatsApp conversation interface.
- Queued message intent, permission checks, webhook deduplication, and delivery feedback.
- An operational path between CRM, the Evolution connector, and inbound replies.
Here’s the preview we discussed. Let me know what you think.
Delivery feedback → CRMThanks! Let’s talk through the next step.
Reply → intended conversationWhat was verified
Production acceptance on 26 September 2026 verified one authorized outbound text through the CRM in Orca, delivered/read feedback, and an inbound reply appearing in the intended conversation.
Based on the project’s dated acceptance records. Diagrams show the design; they are not a live demo.
The next questions
Acceptance covers a text round-trip. Real attachment sending remains unverified. This is an internal Evolution integration, with no claim of official Meta Business Platform support or exactly-once delivery.
What I take from it
A useful integration keeps permission, delivery state, and the human conversation connected. Handling an ambiguous result matters as much as sending the first message.