Disclosure: this post contains an affiliate link to Make. If you sign up through it, I may earn a commission at no extra cost to you.
For years, LINE Notify was the easy way to send alerts to a LINE group in Japan. It shut down on March 31, 2025. The replacement is the LINE Messaging API, which takes more setup and has a monthly message limit.
I used it to send daily deadline alerts from a spreadsheet to a small production team's LINE group. This post covers the setup, how I stayed inside the free plan, what broke, and what I'd change. The project has ended, so this is a look back at a setup that ran for real.
What it does
The automation sends one LINE message a day listing every task that is due today and not done yet. In Japan, many small teams talk in LINE groups, not Slack or email. So the alert goes where people already look.
The source was a Google Sheet with one row per article. Each row had three steps with a due date and a status: outline done, first draft done, and published.
The stack and the flow
The stack is Google Sheets, Make and the LINE Messaging API. There are two pieces: a one-time setup to get the group ID, and a daily scenario.
Getting the group ID
You cannot see a LINE group's ID anywhere in the LINE app. You have to catch it from an event.
- Create a LINE Official Account with the Messaging API turned on.
- Point its webhook at a Make custom webhook.
- Invite the bot into the group.
When the bot joins, LINE sends a join event. The group ID is inside that event, in source.groupId. I copied it once and used it in the daily scenario.
The daily scenario
The daily scenario reads the sheet, builds one combined message, and pushes it once:
The daily scenario. One push a day, however many rows are due.
- Google Sheets — reads the rows
- Set variable — one nested
if()returns a line only if a step is due today and not done - Filter — passes only rows where that line exists
- Text aggregator — joins the lines into one message
- HTTP – Make a request — calls the Messaging API push endpoint with the group ID
The message looked roughly like this (dummy data):
Due today:
- Test article A: first draft
- Test article B: publish
What it costs
LINE was the tight part. I ran this on the free LINE Official Account plan, which allows up to 200 messages a month in Japan. You cannot buy extra messages on that plan.
The way LINE counts messages matters here. A push to a group counts once for each person in the group.
For example, one alert to a five-person group uses five messages, and a month of daily alerts would use about 150. Reply messages do not count, but an alert is a push, so it always counts.
Make costs were small. The scenario ran inside my Core plan, at 10,000 credits a month for $10.59 (about ¥1,700). That plan covers all my other scenarios too.
What broke and how I fixed it
Three things went wrong, and each had a simple fix.
Too many messages
At first, the scenario sent one message per overdue row. The group got a burst of separate alerts, and each one ate into the 200-message limit.
The fix was to aggregate before sending. Set variable builds the line, Filter drops empty rows, and the aggregator joins them.
Then the push runs once a day. That one change kept the scenario inside the free plan.
Dates typed as text
Some due dates were typed by hand as text, like 6/25. Make could not compare those with today's date.
I added data validation to the three date columns in Google Sheets, set to "date". After that, nobody could type a text date into those cells.
The wrong "today"
Make runs on its own server time. Without a time zone, "today" could be a different day from Japan's today.
I set the time zone explicitly when formatting dates, like formatDate(now; "YYYY-MM-DD"; "Asia/Tokyo"). After that, "today" matched the team's calendar.
What I'd do differently
I would plan around the message limit from the first day. On LINE's free plan, the number of people in the group matters as much as how often you send.
- Aggregate first. One push with everything in it is cheaper than many small ones. Multiple message bubbles in one request do not raise the count either.
- Count the group. Multiply the group size by the sends per month before choosing the plan.
- Lock the date columns. Data validation stops text dates before they reach Make.
-
Set the time zone everywhere. Any date logic for a team in Japan should say
Asia/Tokyo.
If you want to build something like this yourself, you can sign up for Make with my link. It gives you the Core plan free for the first month, and I earn a commission if you stay on a paid plan.
Top comments (0)