Quick overview
Youtube Video: https://youtu.be/HUBYaWoVlZ8
This workflow receives WhatsApp messages, converts incoming voice notes to MP3 with FreeConvert, trains a Fish Audio voice clone, stores the model reference in Google Sheets, and (on /tts text commands) generates and sends a WhatsApp voice reply using Fish Audio.
How it works
- Triggers when a new WhatsApp message is received and extracts the sender phone number, message type, media ID, and text body.
- If the message is a voice note, it fetches the media URL from the Facebook Graph API and downloads the audio file.
- It creates and uploads a FreeConvert job to convert the downloaded audio to MP3, then polls FreeConvert until the job status is completed.
- It downloads the converted MP3 and uploads it to Fish Audio to create a private TTS voice model.
- It upserts the returned Fish Audio model ID and name into Google Sheets and sends a WhatsApp confirmation message to the sender.
- If the incoming message is text containing “/tts”, it runs a sub-workflow that generates speech in Fish Audio from the text, uploads the audio to WhatsApp, and sends it back as an audio message.
Setup
- Configure WhatsApp Cloud API credentials and webhook settings, then connect the trigger URL in your WhatsApp app configuration.
- Add a FreeConvert API bearer token (HTTP Bearer Auth) and confirm the workflow uses your FreeConvert job endpoint settings.
- Add Fish Audio API credentials and update the target voice ID/model settings if you want to use a different Fish Audio voice/model.
- Connect Google Sheets with a Service Account and set the Spreadsheet ID and sheet tab to store the Fish Audio model reference.
- Update WhatsApp variables such as the Phone Number ID and the recipient phone mapping in the WhatsApp send nodes to match your environment.