Stop blasting every LINE friend the same promo
A marketing agent for a LINE Official Account that builds audiences from the shop's own customer list in Google Sheets, drafts one promotion per segment, sends it as a narrowcast through the Messaging API only to that audience or a demographic filter (age, gender, region in Thailand, how long they have been a friend), stays inside the month's message quota, and reports delivery, with the owner approving every send
The problem
Most shops broadcast one message to every LINE friend, burn the month's message quota by mid month, annoy the people the offer was never for until they block the account, and give the customers who would actually buy a generic line that does not speak to them. The Messaging API has had targeted sending for years; nobody in the shop has time to set it up.
How the agent works
It starts
Each campaign starts from the shop's customer sheet (Google Sheets or an export from the POS), where customers who added the LINE OA have their LINE user ID recorded from chats or orders.
The agent works
The agent, running in Claude Code against the LINE Messaging API, proposes segments the owner recognises (bought the seasonal item last year, no order in 90 days, Bangkok area) and creates an audience for each by uploading the user IDs, up to 10,000 per request; an audience needs at least 50 recipients or the send fails. It drafts one short message per segment in the shop's voice, shows the owner the audience size, the text and the remaining monthly message quota, and only after a yes sends a narrowcast to that audience, optionally combined with LINE's own demographic filter (age bands, gender, region in Thailand, friendship period from 7 to 365 days) and a limit so the send stays within the remaining quota. It then polls the narrowcast progress until succeeded or failed and logs the result in the sheet. Click based audiences can be built from who tapped a link in a message sent within the last 60 days, so the next campaign goes only to people who showed interest.
The result
Every send needs the owner's approval, and the agent never broadcasts to all friends.
Worked example
LINE's Messaging API spec defines the pieces: a narrowcast request takes a recipient (an uploaded audience, with and, or and not operators to combine several), a demographic filter (gender, age bands from 15 to 70 in five year steps, iOS or Android, area codes th_01 to th_08 for Thailand, friendship period of 7, 30, 90, 180 or 365 days) and a limit object whose upToRemainingQuota flag stops the send at the monthly allowance; progress phases are waiting, sending, succeeded and failed, and error code 4 means an audience of fewer than 50 recipients was used. Audiences are built by uploading up to 10,000 user IDs per request or 1,500,000 by file, or from clicks or impressions on a message sent in the past 60 days. LINE's open source MCP server covers push and broadcast and reports the monthly message quota but has no narrowcast tool, so the agent calls that endpoint through the SDK. No open rates or sales figures are published in these sources, so measure your own: clicks per segment against the old all friends broadcast.
Join the Agent OS Club
8 weeks to the AI team a 50 person company would hire. Instant access to our agent blueprints. USD 15 a month, cancel any time.
Join the Agent OS ClubBuilding this for an organization? Learn more at theagentiv.com