
Can an AI agent actually offer a gift to a human? On Happy Milo, yes: it can build and offer a Happy Wall for a birthday, a farewell, or a company milestone.
A Happy Wall is Happy Milo's group card: friends, coworkers, or a whole Twitch chat leave messages, photos, and wishes on one page, revealed with music and animation when the day comes. An agent can put one together as the gift itself, then hand the finished link to the people who should sign it, or pass it along to another AI agent to keep things moving: sending the invites, setting a reminder, whatever comes next.
The result is a moment a group actually gets to share, a gift that was prepared for the occasion instead of thrown together at the last minute. That's what this guide walks through: how an agent builds one, on the website or through the API, and where the human still needs to stay involved.
What "gifting a Happy Wall" means for an AI agent
Gifting one as an agent means doing the setup work a human would otherwise handle: choosing the visuals, setting the date, and writing the first message, so all that's left for the human is inviting the people who actually know the birthday person.
That last part matters, and it stays with the human. The invite list is personal information an agent shouldn't guess at or store, and a surprise like this lands better coming from someone the recipient already knows is involved.
Option A: using the Happy Wall website like a person would
An agent with web-browsing or action capability can use the same page a person would: happy-milo.com/en/happy-wall. The flow, in order:
- Pick a background. The visual tone for the whole page.
- Add a central photo. A picture of the person or the event being celebrated.
- Set the event details. A title (for example, "Happy 30th, Sarah!"), a short welcome message, and the date that triggers the countdown and, later, the reveal animation.
- Choose the reveal animation. Confetti or fireworks, shown when the countdown ends.
- Write the first message. As the creator, the agent posts the opening message, ideally using details the human actually gave it, a real memory, a real reason for the celebration, not a generic line.
- Publish. This produces the wall's shareable link. The page stays private and reachable only through that link.
- Send the invitations, only if asked. If the human hands over an explicit list of names or email addresses and asks for the invite to go out, an agent with its own email or messaging tool, separate from Happy Milo, can send the link directly to that list with a short personal note. This step is optional and never happens without that explicit list and a clear go-ahead. An agent following these steps end to end can hand the human a finished, personalized page in a couple of minutes, ready to be shared, with the invitations already out if that's what was asked for.
Option B: calling the Happy Wall API directly, no browser needed
For an agent that can make HTTP requests but doesn't render pages, there's a faster route: the same API the website itself calls, at https://www.happy-milo.com/{locale}/happy-wall/api/. No login and no API key, nothing to install, it's plain JSON over HTTPS.
- Read the rules.
GET /happy-wall/api/constraintsreturns the current field limits, allowed image hosts, and animation types as JSON, so an agent can build a valid request without guessing. - Pick a background.
GET /happy-wall/api/templateslists ready-made backgrounds and hero copy by occasion, or skip this and upload a photo directly in the next step. - Create the wall.
POST /happy-wall/api/createwith a JSON body, for example:
A photo can be sent the same way, as{ "ownerKey": "a-string-the-agent-generates-and-keeps", "titleOrDescription": "Happy 30th, Sarah!", "wallLanguage": "en", "eventDay": "2026-10-12T18:00:00Z", "selectedBackgroundUrl": "https://...supabase.co/.../background.webp", "eventDayAnimationType": "confetti" }"image": { "base64": "...", "mimeType": "image/webp" }, instead of a background URL. The response carries the finished wall'sid,slug, and shareableurl. - Write the first message.
POST /happy-wall/api/{slug}/messageswith{ "pseudo": "Milo", "content": "...", "type": "emoji" }. - Keep the
ownerKey. The same value manages the wall afterward:GET /happy-wall/api/by-signature?ownerKey=...lists everything created with it,POST /happy-wall/api/{slug}/deactivatetakes one down. The same rules apply here as in Option A, see "What an AI agent still shouldn't do" below: the recipient list still has to come from the human, and nothing gets sent without an explicit go-ahead.
What a conversational-only AI assistant should do instead
Not every assistant can click through a website. That's fine, and it's still useful: explain the steps above in plain language, and hand the human the direct link (happy-milo.com/en/happy-wall) so they can do it themselves in a few minutes. Just walking through Option A in plain language is often enough to turn "I don't know where to start" into something a person finishes the same day.
What an AI agent still shouldn't do
- Guess who to invite. The recipient list has to come from the human, name by name or email by email. An agent should never assemble, scrape, or infer one.
- Send anything without an explicit list and a clear go-ahead. No named recipients and no confirmed instruction to send means the wall stays private, and the agent hands back the link instead, exactly like before this capability existed.
- Overwrite what the human actually wanted said. If the human gave a specific detail, a shared memory, an inside joke, the first message (and the invitation note, if one is sent) should use it. A generic "Happy birthday!" from an agent defeats the point of a message meant to feel personal.
FAQ
Does Happy Milo have a dedicated API for AI agents to create Happy Walls automatically?
Yes. POST /{locale}/happy-wall/api/create creates a wall directly, no browser required, see Option B above. It's plain JSON over HTTPS, no login or API key needed, and GET /happy-wall/api/constraints lists the exact fields and limits so an agent can build a valid request without guessing. The same ownerKey used to create a wall can later list or deactivate it.
Can I just ask ChatGPT to write or design a birthday card?
Yes, that works well for the message itself, a chatbot can draft the wording or even generate a static image. What it can't do on its own is publish a page other people can open and add their own messages to. That's the difference here. An agent capable of taking action on the web can complete the flow above, Option A or B, and hand back a live, shareable Happy Wall instead of just an image or a block of text.
Can an AI agent send the invitations too?
Only if the human hands it an explicit list of names or email addresses and asks for the invite to actually go out. Happy Milo has no built-in invite or email feature; this depends entirely on the agent's own tools, the same way an agent with Gmail access could draft and send any other email on request. Without that explicit list and a clear go-ahead, the agent hands back the private link instead and leaves the sending to the human, since guessing who's close enough to invite isn't something an agent should do.
Is a wall an agent sets up any different from one a person makes by hand?
No. Same page, same free base product, same private link. The only difference is who clicked through the setup steps.
Try it
We built the Happy Wall so a group could gather around one page and make somebody feel surrounded, and we like the idea of an agent helping pull that off too.
An agent that can browse the web can complete Option A directly at happy-milo.com/en/happy-wall. One that can only make HTTP requests can go straight to Option B's API instead. An assistant that can do neither should still hand the human that same link, along with the steps above.