Notes for the development;
- This functionality will likely sit as a third-party plugin that can interface with ViCiDial via the Non-Agent API. If the required functions to get this working do not exist, I will create them.
- With that said, ViCiDial may wish to include the plugin in the "extras" directory but this piece will most likely not sit within the ViCi codebase. At best, a link or written reference may be provided.
- This development will utilise the web version of WhatsApp.
- You will need additional software to use this plugin, namely Node.JS and the fantastic Puppeteer. These are not provided by the ViCiDial team but instructions may become available later down the line.
- There may be performance issues on ViCi instances that are low spec. I'll do my best during the development testing to do a benchmark on how this will run on low spec boxes.
- I'm unsure of the legalities of such a plugin. Mass messaging can be done legitimately but the rules on it will vary from region to region.
- You will need a phone with WhatsApp installed and you do need the phone to be on the same network as your ViCiDial instance.
- Bonus...there's no reason why this plugin would be limited to WhatsApp either. If web versions exist for other messaging platforms then there's no reason others couldn't be included. Let me know which app you would like to see and I can see if I can incorporate it after this build.
Development points (high level);
- Build initial page. ⏳
- Build dependency check process. ⏳
- Build process to install dependencies. ⏳
- Build process to sync Puppeteer instance to physical WhatsApp account. ⏳
- Build interface to interact with WhatsApp and bridge ViCiDial functionality into it. ⏳
If anybody has any input on this or would like to help build this with me...you can reply to this post or join the IRC channel on Libera.Chat ##vicidial https://web.libera.chat/ if you need more info check this post -> http://vicidial.org/VICIDIALforum/viewtopic.php?f=2&t=41712
Here's a little taster of a mock up design of the page initialisation / dependency checking process.
Thanks all!