Background & Goal
Goal (very clear)
The goal is to build a background-only SmartThings integration that:
-
Subscribes to existing devices in a personal SmartThings account
-
Receives real-time device events (push-based, not polling)
-
Sends those events to an external endpoint (Google Apps Script → Spreadsheet / Cloudflare / ntfy, etc.)
-
No UI required
-
No Home Assistant
-
No Raspberry Pi / local server
-
Hosting platform: Google Apps Script (HTTPS Web App)
In short:
We want SmartThings to push device events to a webhook hosted on Google Apps Script, without requiring user interaction or UI after initial setup.
Technology Stack Used
-
Platform: Samsung SmartThings
-
Webhook Host: Google Apps Script (deployed as Web App, HTTPS)
-
No local hardware
-
No polling (polling was intentionally avoided due to missed events and quota concerns)
Initial Working Pieces (What DID work)
1. Webhook connectivity
-
Google Apps Script Web App is publicly accessible over HTTPS
-
SmartThings successfully calls:
-
PING -
CONFIRMATION
-
-
Confirmation lifecycle was completed successfully by calling the provided
confirmationUrl
2. Lifecycle handling
The Apps Script correctly responds to:
-
PING -
CONFIRMATION -
CONFIGURATION -
UNINSTALL
This proves:
-
HTTPS
-
TLS
-
Endpoint reachability
-
JSON parsing
-
Response formatting
All are correct.
Original Approach Attempted
Project creation path used:
Developer Center → Create Project → Automation for the SmartThings App → Webhook Endpoint
This seemed correct initially because:
-
It allows a webhook
-
It does not require AWS Lambda
-
It appears to be the modern replacement for classic SmartApps
Where the Problem Starts
Observed behavior in logs:
Only these lifecycles are ever received:
CONFIGURATION
CONFIGURATION
CONFIGURATION
UNINSTALL
Never received:
INSTALL
Why INSTALL is critical
-
Device subscriptions can only be created during
INSTALL -
The
INSTALLlifecycle provides:-
installedAppId -
authToken(scoped token required for subscriptions)
-
-
Without
INSTALL, all subscription attempts result in 403 Forbidden
This was verified repeatedly.
SmartThings Mobile App Behavior
-
App appears under Smart Apps (Developer Mode enabled)
-
Tapping the app always shows:
“There was a problem connecting. Try again.”
-
Each tap results in another
CONFIGURATIONlifecycle -
Installation never completes
-
There is no visible “Install” or “Done” path
Root Cause (Key Insight)
After extensive debugging and lifecycle verification, the core issue became clear:
Automation SmartApps cannot be installed headlessly
Important platform behavior:
-
Automation SmartApps are UI-driven by design
-
They expect:
-
Valid automation context (triggers, actions, routines)
-
A configuration flow that SmartThings can complete
-
-
A “background-only” automation is silently rejected
-
When SmartThings cannot finalize configuration, it:
-
Loops
CONFIGURATION -
Never fires
INSTALL -
Shows a generic “problem connecting” error in the app
-
This behavior cannot be fixed by code alone.
Why this is confusing (and a trap)
-
The term “SmartApp” is used in multiple places
-
The Automation Webhook path looks like the old Webhook SmartApp
-
But functionally it is not equivalent
Important distinction:
| Type | Purpose |
|---|---|
| Automation SmartApp | UI-driven routines & automations |
| Webhook SmartApp / Connector (classic) | Background integrations, subscriptions |
The Automation path cannot satisfy the “no UI, background-only” requirement.
What Was Tried (and Why It Failed)
-
Adding fake CONFIGURATION pages
-
Returning
complete: true -
Adding dummy sections
-
Ignoring UI and attempting subscriptions manually
-
Using PATs (403 errors confirmed)
-
Reinstalling multiple times
-
CLI & API inspection
All failed for the same reason:
INSTALL never fires
Environmental Constraints
-
No Home Assistant
-
No Raspberry Pi
-
No always-on server
-
Google Apps Script chosen intentionally for:
-
HTTPS
-
Zero infrastructure
-
Reliability
-
Easy logging
-
What We Believe Is Needed (Request for Guidance)
We are looking for official or supported guidance on one of the following:
Option A (Preferred)
A true Webhook SmartApp / Connector-style project that:
-
Can be hosted on Google Apps Script
-
Fires
INSTALL -
Supports device subscriptions
-
Does not require UI or automation routines
If this still exists in the new Developer Center, where exactly is it created?
Option B (Acceptable workaround)
A documented way to complete Automation SmartApp installation for:
-
Background-only apps
-
No triggers/actions
-
Subscription-only use cases
Option C (Confirmation)
If SmartThings no longer supports background webhook listeners without UI, we would like:
-
Explicit confirmation
-
Recommended alternative architecture (cloud relay, schema, etc.)
Final Ask (Very Clear)
Is it currently possible (in 2026) to create a background-only SmartThings webhook that subscribes to device events without UI, using a hosted HTTPS endpoint (e.g., Google Apps Script)?
If yes:
- Please point to the correct project type / workflow
If no:
- Please confirm this limitation so developers stop attempting an unsupported pattern
This summary reflects multiple days of structured debugging, not trial-and-error.
Any authoritative clarification from SmartThings staff or experienced partners would be hugely appreciated.