Back to HomeAppSheet

AppSheet LINE Integration Tutorial: Build a LINE Notification Bot [2025]

14 min min read
#AppSheet#LINE#LINE Notify#Webhook#Automation#Notifications#Bot#Enterprise Applications#No-Code#Integration

AppSheet LINE Integration Tutorial: Build a LINE Notification Bot [2025]

When building Apps in Asia, notifications need to reach users instantly.

Emails might not be checked immediately, but messaging app notifications are read within seconds.

This tutorial teaches you how to make AppSheet send LINE notifications, from setup to practical applications.

Want to learn AppSheet basics first? See AppSheet Complete Guide.


Why Integrate with LINE?

First, let's explain why LINE notifications are so important.

Most Popular Messaging App

LINE has extremely high penetration in Taiwan and other Asian markets.

Almost everyone has LINE and keeps it open all day.

In comparison:

  • Email: Might only check once a day
  • SMS: Has costs and often ignored
  • App Push: Requires installing dedicated App

LINE's Advantages:

FeatureDescription
InstantMessages arrive instantly, most people read immediately
UbiquitousAlmost everyone has it
FreeLINE Notify is completely free
No learning curveUsers don't need new apps or new interfaces

AppSheet + LINE Application Scenarios

What can you do connecting AppSheet and LINE?

  • Order notifications: New order comes in, sales immediately gets LINE message
  • Approval reminders: Leave request submitted, manager gets LINE notification
  • Alert warnings: Inventory below safety level, purchasing knows immediately
  • Daily reports: Every morning auto-send yesterday's sales summary

These things that required manual tracking can all be automated.


Integration Methods

AppSheet can integrate with LINE through two main methods.

Method 1: LINE Notify

Suitable for: One-way notifications, simple needs

LINE Notify is a free notification service provided officially by LINE.

Features:

  • Simple setup
  • Completely free
  • One-way (can only send notifications, can't receive replies)
  • 1000 messages per hour limit

Use cases:

  • New data notifications
  • Status change reminders
  • Scheduled report sending

Method 2: LINE Messaging API

Suitable for: Two-way interaction, complex needs

Requires creating a LINE Bot—more powerful features.

Features:

  • Two-way interaction possible
  • Can receive user replies
  • Requires developer account
  • More complex setup

Use cases:

  • Chatbots
  • Query bots (user messages to check inventory)
  • Approval workflows (manager can reply to approve directly in LINE)

This article focuses on LINE Notify because it's simple to set up, free, and sufficient for most needs.

If you need Messaging API, we recommend professional development.

Illustration 1: LINE Notify vs Messaging API Comparison

LINE Notify Integration Tutorial

Step by step setup guide.

Step 1: Get LINE Notify Token

First, get a Token—this is AppSheet's pass to send messages to LINE.

Steps:

  1. Go to LINE Notify website: https://notify-bot.line.me/
  2. Log in with your LINE account
  3. Click your name in top right → "My page"
  4. Scroll down to "Generate token" section
  5. Click "Generate token"

Configure token:

  • Token name: Enter a recognizable name, e.g., "AppSheet Notifications"
  • Select chat room:
    • "1-on-1 chat with LINE Notify" = Send to yourself
    • Select a group = Send to that LINE group
  1. Click "Generate"
  2. Important: Copy and save this Token (only shown once)

Token format example:

BbXs9Hg5K2J8mN1pQ4rT7wY0zA3dF6iL9oU2eP5vX

Step 2: Set Up AppSheet Automation

Next, set up automation in AppSheet to call LINE Notify when triggered.

Steps:

  1. Open your AppSheet App
  2. Go to "Automation" page
  3. Click "New Bot" to create new automation

Configure Event (Trigger Condition):

  1. Click "Create a new event"

  2. Event Type select (as needed):

    • Data Change: Trigger on data change
    • Schedule: Scheduled execution
  3. If selecting Data Change:

    • Table: Select table to monitor
    • Data change type: Select Adds only / Updates only / or All changes

Configure Process (Flow):

  1. Click "Add a step"
  2. Select "Call a webhook"

Configure Webhook:

  • Preset: Select "Custom"
  • URL:
    https://notify-api.line.me/api/notify
    
  • HTTP Method: POST
  • HTTP Content Type: Application/x-www-form-urlencoded

Configure Headers:

Click "Add" to add Header:

  • Header Name: Authorization
  • Header Value: Bearer YOUR_TOKEN_HERE

Replace YOUR_TOKEN_HERE with your LINE Notify Token.

Format is Bearer + space + Token.

Configure Body:

message=<<[FieldName]>> message content

Step 3: Configure Message Content

Message content can include dynamic data.

Basic format:

message=New Order Notification%0A%0ACustomer: <<[CustomerName]>>%0AAmount: <<[Amount]>>%0ANotes: <<[Notes]>>

Explanation:

  • %0A = Line break
  • <<[FieldName]>> = Insert that field's value
  • %0A%0A = Two line breaks (blank line)

Actual received message:

New Order Notification

Customer: John Smith
Amount: 5000
Notes: Please process urgently

Step 4: Test Notification

Must test after setup is complete.

Test steps:

  1. Return to AppSheet App main screen
  2. Add a record that matches trigger conditions
  3. Wait a few seconds (usually 5-10 seconds)
  4. Check if LINE received notification

Not receiving?

ProblemPossible CauseSolution
Not receiving at allToken errorConfirm Token is correct, includes "Bearer "
Not receiving at allURL errorConfirm it's notify-api.line.me
Not receiving at allTrigger condition not metConfirm Event settings are correct
Received but garbledEncoding issueConfirm message format is correct

Illustration 2: AppSheet Webhook Settings Screen

Application Scenarios

Practical application examples.

Scenario 1: Order Notification

New order comes in, sales immediately gets notification.

Trigger Condition:

  • Table: Orders
  • Event: Adds only (when new order added)

Message Content:

message=📦 New Order Notification%0A%0AOrder ID: <<[OrderID]>>%0ACustomer Name: <<[CustomerName]>>%0AOrder Amount: $<<[Amount]>>%0AOrder Time: <<[CreatedAt]>>%0A%0APlease process promptly!

Received Message:

📦 New Order Notification

Order ID: ORD-2025-001
Customer Name: John Smith
Order Amount: $15,000
Order Time: 2025-12-15 14:30

Please process promptly!

Scenario 2: Approval Reminder

Leave request submitted, manager gets notification.

Trigger Condition:

  • Table: LeaveRequests
  • Event: Adds only
  • Condition (optional): [Status] = "Pending"

Message Content:

message=📝 Leave Request Notification%0A%0AApplicant: <<[EmployeeName]>>%0AType: <<[LeaveType]>>%0ADates: <<[StartDate]>> ~ <<[EndDate]>>%0AReason: <<[Reason]>>%0A%0APlease review in system

Scenario 3: Alert Warning

Inventory below safety level, purchasing gets alert.

This is slightly more complex, requiring Automation's conditional logic.

Setup Method:

  1. Event: Schedule (e.g., every morning at 9 AM)
  2. In Process, add "Run a data action"
  3. Execute Action on Products table
  4. In Action, set condition: [Stock] < [SafetyStock]
  5. Only matching items send Webhook

Message Content:

message=⚠️ Inventory Alert%0A%0AProduct: <<[ProductName]>>%0ACurrent Stock: <<[Stock]>>%0ASafety Stock: <<[SafetyStock]>>%0A%0APlease restock immediately!

For more automation setup, see AppSheet Automation Tutorial.

Scenario 4: Daily Report

Every morning auto-send yesterday's sales summary.

Setup Method:

  1. Event: Schedule

    • Frequency: Daily
    • Time: 8:00 AM
  2. Create a Virtual Column to calculate yesterday's total

  3. Webhook message includes statistics

Message Example:

message=📊 Daily Sales Report%0A%0ADate: <<[TODAY() - 1]>>%0A%0AOrders: <<[YesterdayOrderCount]>>%0ARevenue: $<<[YesterdayRevenue]>>%0A%0AKeep it up!

Want more complex LINE integration? LINE Notify suits basic needs; complex interaction requires Messaging API.

Schedule technical consultation and let us help evaluate the best integration solution for you.


Advanced Tips

Make LINE notifications smarter.

Conditional Notifications

Not all data needs notification—you can set conditions.

Example: Only notify for large orders

In Automation's Event, set Condition:

[Amount] >= 10000

This way only orders with amount >= 10000 send LINE.

Example: Only notify specific personnel

[AssignedTo] = USEREMAIL()

Only notifies the responsible person.

Image Notifications

LINE Notify can also send images.

Method 1: Use Image URL

Add imageThumbnail and imageFullsize in Body:

message=New Product Listed&imageThumbnail=https://example.com/thumb.jpg&imageFullsize=https://example.com/full.jpg

Method 2: Send Stickers

LINE Notify supports LINE stickers:

message=Task Complete!&stickerPackageId=1&stickerId=13

Sticker ID lookup: https://developers.line.biz/en/docs/messaging-api/sticker-list/

Group Notifications

Send to LINE group instead of individual.

Setup Method:

  1. When generating Token, select target group
  2. LINE Notify official account must first join that group
  3. Messages sent with that Token go to the group

Notes:

  • Each Token can only correspond to one target
  • Different groups need different Tokens
  • All group members see the notification

Multi-Target Notifications

Notify multiple people or groups simultaneously.

Method: Create multiple Webhooks

In the same Bot's Process, add multiple "Call a webhook" steps, each using different Tokens.

Illustration 3: LINE Notification Actual Screen

Common Questions

Is LINE Notify free?

Yes, completely free.

But there are usage limits: maximum 1000 messages per hour.

For typical business applications, this is more than enough.

What if I lose the Token?

Can't recover—must regenerate.

  1. Go to LINE Notify personal page
  2. Delete old Token (disconnect)
  3. Generate new Token
  4. Update settings in AppSheet

Recommendation: Save Token in a secure place.

Can I send to specific users?

LINE Notify itself doesn't support dynamically selecting recipients.

Each Token corresponds to only one target (individual or group).

If you need dynamic recipient selection, you need LINE Messaging API.

Does AppSheet need paid plan to use Webhook?

Yes. Webhook is an Automation feature, requires Starter plan or above.

For detailed pricing, see AppSheet Pricing Guide.

Is there a message length limit?

Yes. LINE Notify single message max 1000 characters.

Exceeding will be truncated.

Why aren't line breaks in messages working?

Confirm you're using %0A not \n.

In URL encoded Body, line breaks use %0A.

Can I receive user replies?

LINE Notify cannot—only one-way sending.

If you need two-way interaction, use LINE Messaging API.

For advanced Webhook setup, see AppSheet API Integration Guide.

FAQ

Q1: LINE Notify vs LINE Messaging API — which should I use for AppSheet notifications?

LINE Notify is simpler; LINE Messaging API is more capable. (1) LINE Notify — (A) free; (B) send to personal LINE account or group via token; (C) text + basic stickers + images; (D) one-way only (can't receive replies); (E) setup: 5 minutes. Fits: simple alerts, attendance notifications, order confirmations. (2) LINE Messaging API — (A) free tier 500 messages/month, paid starts $30/month for 15K messages; (B) uses a LINE Official Account (Channel); (C) rich messages, flex messages, quick reply buttons, two-way interaction; (D) can build full chatbots; (E) setup: 30 minutes, more complex. Fits: customer-facing chatbots, interactive workflows, business accounts. Decision: (A) internal team notifications → LINE Notify (easiest); (B) customer-facing bot with two-way interaction → Messaging API; (C) high-volume (>10K/month) outbound notifications → Messaging API; (D) need branded LINE Official Account → Messaging API. Note: LINE Notify is being deprecated March 2025; migrate to Messaging API or LINE Official Account Notification API before the deadline.

Q2: Why does my AppSheet Bot send LINE notifications to the wrong person?

Three common causes. (1) Token mix-up — LINE Notify tokens are per-user or per-group; hardcoding one token sends to that recipient only. Fix: store user-specific tokens in a separate table in AppSheet, lookup by user on each Bot run. (2) Missing USEREMAIL() context — if Bot triggers based on record change, you need USEREMAIL() or row-level data to determine the recipient, not a global hardcoded value. Fix: add a "Notify_User" or "Token" column to the record and reference it in the Bot action. (3) Group token with shared access — if using a group token, any Bot run sends to that entire group. Fix: verify whether group broadcast is intended; for user-specific sends, generate individual tokens. Debug technique: add a "Debug_Log" action before the LINE send to write "Sending to [token name]" to a log table — this makes token routing visible.

Q3: Can AppSheet send LINE notifications with images from the database?

Yes, via image URL in the Webhook payload. LINE Notify supports imageThumbnail and imageFullsize parameters pointing to public URLs. Implementation steps: (1) store images in AppSheet using an Image column type; (2) images are hosted on Google Cloud Storage by default with public URLs; (3) in the Bot's Webhook action, include imageFullsize=<IMAGE_URL> parameter; (4) LINE renders the image in the notification. Common issue: "Image not showing": (A) AppSheet's image URLs may require authentication — use "Public" sharing mode; (B) image file too large (>1MB) — resize before upload; (C) URL requires HTTPS — LINE won't load HTTP images. Alternative for Messaging API: use ImageMessage type with URL to a publicly accessible image; supports richer formatting. Privacy consideration: images sent via LINE Notify are cached by LINE servers; don't send sensitive personal photos without user consent.

Q4: Is there a rate limit for LINE notifications from AppSheet?

Yes, both LINE Notify and AppSheet have limits. (1) LINE Notify limits — 1,000 messages per hour per token. Exceeding returns 429 error. (2) LINE Messaging API limits — (A) free tier: 500 messages/month; (B) paid tier: depends on plan ($5/1K additional messages); (C) per-second rate limit: 100 messages/sec push, 500/sec broadcast. (3) AppSheet Bot limits — (A) free plan: 50 actions/day; (B) paid plans: vary by tier; (C) Webhook actions count against action quota. (4) Timeout — AppSheet Webhook times out at 30 seconds; LINE typically responds within 2–5 seconds, but retry logic helps with transient failures. Handling rate limits: (A) batch notifications — combine multiple events into one message per user; (B) implement exponential backoff — retry with increasing delays on 429 errors; (C) use scheduled Bots instead of event-driven for bulk notifications; (D) split across multiple tokens if doing high-volume sends.

Q5: Can we track whether LINE notifications were read/opened by users?

Not directly, but workarounds exist. (1) LINE Notifyno read receipts available; can only confirm delivery (via 200 response from API). (2) LINE Messaging API — similarly no read receipts for push messages, but can track via: (A) Click tracking URLs — use Bitly, custom URL shortener, or Google Analytics UTM parameters in links within messages; when user clicks, you know the message was engaged; (B) Quick Reply buttons — user clicking a quick reply sends a postback event you can log; (C) Webhook events for user replies — if user responds, you know they read. (3) Best practices for engagement tracking: (A) include unique tracking parameters per user in message URLs (e.g., ?notif_id=12345&user_id=user_abc); (B) log clicks in AppSheet tables via a callback endpoint; (C) use LINE Analytics dashboard for aggregate metrics (Messaging API only). (4) Workaround for LINE Notify: include a one-click confirmation link (e.g., "Click to confirm you've seen this notification") that hits an AppSheet webhook — indirectly tracks read engagement. For compliance/audit requirements, Messaging API's interaction events are more robust than LINE Notify's fire-and-forget model.


Next Steps

With LINE notifications set up, your App can instantly notify users.

Continue Learning

Implementation Recommendations

  1. Test before going live: Confirm message format is correct
  2. Don't send too many: Avoid notification spam—only send important ones
  3. Keep Token secure: If leaked, others can impersonate your messages
  4. Monitor send volume: Watch not to exceed 1000 per hour limit

Need More Advanced LINE Integration?

LINE Notify can satisfy most notification needs, but if you need two-way interaction and auto-replies, you need LINE Messaging API.

Common advanced needs:

  • Users query inventory in LINE
  • Manager approves leave directly in LINE
  • LINE chatbot answers common questions
  • Integration with LINE Official Account features

Schedule technical consultation and let us help build a complete LINE integration solution.


References

  1. LINE Notify Official Documentation
  2. LINE Developers - Messaging API
  3. AppSheet Documentation - Call a Webhook
  4. AppSheet Community - LINE Integration Best Practices

Need Professional Cloud Advice?

Whether you're evaluating cloud platforms, optimizing existing architecture, or looking for cost-saving solutions, we can help

Book Free Consultation

Related Articles