Building an AI Agent to manage social media ads and creative assets
Working with a Dubai AI first marketing agency, the goal was to create an AI agent that manages the entire creatives creation and social media ads lifecycle for clients.
One of the side quests I had set out to accomplish with this project was to see how much of it can be hands-off for the client. Instead of building a new platform that the clients to learn and check on the regular, I wanted almost all the client interactions to go through what they already use: WhatsApp. This means approvals, receiving summaries, and other details.
For this, due to the complexity of connecting to WhatsApp, we had to settle with Telegram as a testing ground.
Mapping the journey
Before beginning the prototype, the first order on the table was to understand the current process, how clients are onboarded, and the time each step takes. This would allow for research into what is the low hanging fruit, but highest impact, and what may be harder to implement. Reducing time became a KPI.
Throughought the experiment, three fully functional prototypes were working, two chat interfaces, and many services behind the scenes were stitched together. During this, we had also experimented with AirTable, Notion and a few other products beforehand, as we didn't want to reinvent the wheel. Unfortunately many were either too complicated, too slow, or wasn't flexible enough for our specific needs.
Ads preview
This prototype enabled the preview of ads in mock UI of facebook, instagram, tiktok and instagram. It allowed for single photo, slideshow, video and reels.
Slack and telegram bots
The AI agent was integrated into slack and telegram to give notifications to both internal teams and clients on status updates, items to review and other things to be done.
Client management system
This prototype was built in v0 to manage our clients, custom curated specifically for the needs of the team and their way of work.
Creatives management platform
This is meant to manage all the assets and images, version control and eventually merge with the ads preview prototype.
Tools and services
As mentioned above, we used many tools. The primary ones that proved essential in this entire process was n8n and v0. It was possible to send data from our v0 prototypes to an endpoint in n8n,where it had bridged all the prototypes and services with different triggers.
The process here, as mentioned above was to automate as much as possible, as well as keep communication within channels the client already uses. Displayed below is a sample user journey they may go through.
Message for onboarding
Clients will receive in a message for onboarding that asks a few questions in a web view.
Confirmation
A confirmation is sent in WhatsApp with their onboarding call details.
Post call
After the call a summary is sent in Whatsapp with full summary of budget and requests.
First campaign draft
First campaign is sent by link to a web view with a unique one time pin to review and approve or request changes.
Creatives for ads
Ads will be previewed in a WhatsApp webview to allow them to approve or decline individual ads with comments.
Campaign launch
Client will receive notification for the campaign launch and daily/weekly reports by message with attached image and PDF.
As you can see, with a few exceptions, most of the interaction remains in WhatsApp. Minimizing the need to switch apps or remember another password, instead they get a secure pin for each web view to review and manage. After 48-hours the pin is disabled, and in some cases, once the ads are approved and the campaign is launched the page to preview ads will also be removed.
To clarify, this was the journey we proposed, and most of it was completed, except for WhatsApp. Due to limitations of the platform, many communications went through email instead, and during testing phases, telegram.
Challenges & learnings
01. WhatsApp / Meta integrations
WhatsApp is the main platform used, however when it came to allowing AI agents, it proved to be very limiting. For example, automated messages can only come from broadcast channels, and integrating a read-write with one on one chats for clients with the agents was impossible. For testing purposes here, we used telegram, just to see what the experience would be like and if it is something worth investing more time into with custom solutions.
02. Interfaces are not always better
The custom client portal we created was nice, at first. However the lack of multiplayer and flexibility in tables quickly proved to be a problem. After trying various iterations, making an attempt at using notion and airtable, the concensus was to continue using Google Sheets.
03. Lack of development resources slowed progress
Vibe coding and automation tools have their limits. We can still use them, but there are times where custom solutions or custom APIs may need to be built so we can continue utilizing these tools. Due to our project being an experiment, developers weren't available to help, this roadblock created many problems and often caused some of our endeavors to be dropped.
04. Complex vibe applications are fragile
In an ideal world most of the services we want to prototype would live in a single product that has the client side and business side. However, due to the nature of applications built with tools like v0, we had to break them up into multiple different prototypes. One thing that did come out of it was that Google sheets can be a great central database, whereby each prototype is watching for certain triggers, from status changes to new data added to trigger their particular job.
Final statement
Although it was very interesting, my approach if given the opportunity would have been much different given the early stage of this startup. Instead of trying to build and prove a mega application, building a bunch of small but valuable micro-services that can then be tested, released, and gather significant feedback from users would have been an optimal route.
For example, because they already had services around SEO and ranking, one proposal was to build a custom SEO score built around specific requirements and translate the rating to users in easy to unerstand language.