How to send an M4A audio file as a WhatsApp Voice Message using Green API?

:bullseye: What is your goal?

I want to send an audio file (originally in M4A format) from a website I built with Lovable, to a specific WhatsApp contact as a Voice Message (appearing as a voice bubble, not as a downloadable document) using the Green API module in Make.

:thinking: What is the problem & what have you tried?

The audio file is sent to WhatsApp, but when trying to listen to it, I get a “No longer available” error.
Steps taken so far:

Conversion: I integrated CloudConvert to convert the source file to OGG format with the Opus audio codec, which is required by WhatsApp.

File Handling: I added an HTTP (Get a file) module to properly download the file from the website’s Signed URL before processing it.

Green API Integration: I tried sending the file via the Green API module, but I am unable to find a specific “Send Voice Message” action, and sending it as a file results in the playback error.

:clipboard: Error messages or input/output bundles

Error: WhatsApp displays the audio as a document but shows “No longer available” when attempting to play it.

:link: Create public scenario page

https://eu1.make.com/public/shared-scenario/JDpl3K8QOJC/integration-webhooks

Hey there,

if I’m not mistaken, the format needs to be .ogg, not .m4a to be a voice message.

I checked your blueprint and noticed two possible issues.

  1. Your CloudConvert module is converting the audio from M4A to MP3. WhatsApp voice messages require OGG format with the Opus codec, not MP3.

  2. You’re using the Green API “SendFileByUpload” action, which sends the audio as a regular file/document rather than as a WhatsApp PTT (voice note) message.

The “No longer available” error may also happen if the signed URL expires before Green API finishes processing the file.

I would suggest:

  • Convert M4A → OGG with the Opus codec.

  • Verify that the audio is mono and WhatsApp-compatible.

  • Check whether Green API provides a dedicated send voice/PTT endpoint rather than SendFileByUpload.

  • Test with a publicly accessible URL to rule out signed URL expiration issues.

Could you confirm whether you’re using a dedicated Green API voice/PTT method, or only SendFileByUpload?

Thanks for the feedback! I’ve made several changes since posting the blueprint, so here’s a full update on where things stand:

What we’ve tried so far:

  1. The backend (Lovable / Cloudflare Workers) cannot run ffmpeg, so we can’t convert on the server side.

  2. We added a custom endpoint /api/public/voice_note that returns the signed Supabase URL + correct filename/mime. This solved the ‘no longer available’ issue.

  3. We tried CloudConvert in Make to convert WebM → OGG/Opus, but kept getting: ‘Nothing was written into output file because at least one of its streams received no packets.’ The conversion fails regardless of whether we set the input format to weba or webm.

  4. We then had the backend call CloudConvert API directly and return an MP3 URL from Supabase (stable, not signed). This works — the file is delivered.

  5. We switched from Green API ‘SendFileByUpload’ to calling the sendVoice endpoint directly via HTTP module. Green API returned idMessage (success), but WhatsApp still shows the audio as a regular attachment, not a PTT voice note.

Current setup:

  • Webhook → HTTP (voice_note endpoint, returns MP3 URL) → HTTP POST to /sendVoice on Green API
  • The file is MP3, not OGG/Opus

Main questions:

  1. Could the issue be that Green API’s sendVoice requires OGG/Opus specifically, and MP3 won’t render as PTT?

  2. Any suggestions for reliably converting WebM → OGG/Opus inside Make? CloudConvert keeps failing on our WebM files.

    What is actually happening right now in my automation is that the file is not sent at all. Claude suggested I download the GREEN API and send the file via HTTP, but it seems that this is not working well at the moment.

Thanks!

Hello,

According to docs:

I assume yes- Outgoing file type and send method is determined by the file extension.. So if Whatsapp requires OGG/Opus only this file will be shown as voice message.

You can give a try:

Or