Quick overview
This workflow syncs WhatsApp conversations from Wati into GoHighLevel by adding each delivered or incoming message as a contact note, using Google Sheets to track Wati conversation-to-contact mapping and Slack to alert on workflow errors.
How it works
- Receives a webhook from Wati when a sent WhatsApp message is marked as delivered.
- Pulls the conversation details from Wati, checks a Google Sheets tracker for the conversation ID, fetches the sender profile from Wati, and searches GoHighLevel for a matching contact by WhatsApp ID.
- If a matching GoHighLevel contact is found, creates a contact note containing the WhatsApp message text.
- Receives a second webhook from Wati when a new inbound WhatsApp message arrives.
- Looks up the sender in Wati and checks Google Sheets to determine whether the conversation ID has already been logged.
- If the conversation is already logged, searches GoHighLevel by WhatsApp ID and appends the inbound message as a note on the existing contact.
- If the conversation is new, appends the Wati ID and conversation ID to Google Sheets, then searches GoHighLevel by Wati ID and either adds a note to the existing contact or creates a new contact and adds the note.
- If any workflow execution fails, posts an error alert to a Slack channel.
Setup
- Add Wati API credentials and configure Wati webhook events (message delivered and message received) to point to this workflow’s two webhook URLs.
- Connect Google Sheets OAuth credentials and update the spreadsheet ID, sheet name, and ensure columns exist for “Wati ID” and “Conversation ID”.
- Create a GoHighLevel Private Integration Token and replace the placeholder token and location ID in all GoHighLevel HTTP requests.
- Add Slack OAuth credentials and select the channel where workflow error alerts should be posted.