Workflow commercial license (.spl)
What problem it solves
Commercial license (.spl) controls whether execution is allowed:
- Implementer issues license by workflow, phone deviceId, and validity period
- After customer imports
.spk, they must also import / update.splbefore trial run, tasks, and AI runs are allowed - Self-written plaintext flows are unaffected — only read-only flows imported from
.spk(marked “S”) need commercial license. - Workflow developers selling spk workflows use commercial license for executors
Three “licenses” — don’t mix them
| Type | Who manages | Purpose |
|---|---|---|
| USB device license | EasyClick platform | Run automation taps, screenshots, etc. (Prerequisites & licensing) |
.spk workflow password | Implementer | Import flow package |
.spl commercial license | Implementer | Allow which workflow on which phones, when |
Issue license (implementer)
Implementer issues .spl file for a saved workflow in Workflow editor, sends to customer for import.
Entry
- Open Workflow editor
- Top bar click “Issue license”
Issue license tab
- Select workflow (required)
- Search by name, ID, description for root workflow (not subflow, not imported
spk_*) - After selection shows packageId; if not assigned yet, save that root workflow once in editor
- Licensed phone device IDs (required, one per line)
- Copy device IDs from control center device list into text box
- “Copy device IDs” copies current list to clipboard (for reissue, verification)
- Effective time / expiry time
- Default: effective now, expires one month later (editable)
- License password (required, min 8 characters)
- Deliver with
.splto customer; prefer different channel from.spkimport password (different WeChat/phone/email)
- Password hint, customer notes (optional)
- Notes saved only in implementer local issue history, not written to
.splfile
-
Click “Export SPL license”, choose save location, get
.splfile -
Send
.splfile and license password to customer (do not mix with.spkpassword in one forwardable message)
History tab
After each successful issue, this machine saves issue history (plaintext backup) in data directory for implementer reissue, renewal, accounting — not sent to customer.
| Feature | Description |
|---|---|
| Search | Filter by workflow name, license ID, packageId, device ID, etc. |
| License ID | Matches License in .spl; for customer verification |
| Copy device IDs | One-click copy all deviceIds from that issue (newline-separated) |
| Copy license password | Quick resend when customer forgets password |
| Issue again | Pre-fill workflow, phones, validity in Issue tab; edit and re-export |
| Delete | Delete local history only; does not affect customer’s imported license |
Use license (executor)
After importing .spk, executor imports commercial license for the read-only flow before trial run and batch runs.
Prerequisites
- Completed import with implementer’s
.spk+ workflow import password; read-only flow with “S” in library - Obtained deviceId of phones to run from control center; confirm implementer included those IDs in
.spl
Import / update license
Method 1: Workflow editor
- Find “S” read-only flow in left library
- Hover, click unlock icon (import / update commercial license)
- Select
.splfile, enter license password (not.spkimport password) - On success, license status beside flow: Unauthorized / Licensed / Expired / Not yet effective
Method 2: AI chat · workflow library
- Open AI Agent → AI chat
- In left workflow library, on “S” flow click unlock icon
- Same: select
.spl, enter license password
View license details (executor)
In AI chat · workflow library, on spk_* flow click details icon (document icon) to open SPK details dialog:
| Tab | Content |
|---|---|
| SPK details | Name, version, step count, description, etc. |
| License details | License status, license ID, package ID, effective / expiry time, licensed device list; copy all device IDs |
Badge on workflow list matches above status for quick check whether run is allowed.
Runtime validation
Before trial run, task run, or AI param run on spk_* flow, system checks:
.splimported- Currently selected phone deviceId is in license list
- Within effective time ~ expiry time
On failure, task fails with message (e.g. “Device not licensed — not in commercial license list”).
Validity period
- Online required before running
.spkflows - Offline or time sync failure blocks execution — restore network and retry
FAQ
Same password for .spk and .spl?
Not recommended. .spk decrypts flow package; .spl is commercial execution license. Deliver via separate channels.
Re-issue .spl after .spk upgrade?
Usually not needed. Same workflow — old .spl still works with new package
Same .spl on multiple PCs, multiple spk_xxx?
Yes. Limits are which workflow + which phones + validity, not Agent install count.
Forgot license password?
Product cannot reverse password from .spl. Contact implementer for password from issue history, or re-issue .spl.
“Device not licensed, not in commercial license list”?
Current phone’s device ID not in .spl list — contact implementer to add phone or re-issue .spl.
“Cannot sync time online”?
Check network and retry; .spk commercial license requires online before execution.
USB device license failure?
That is platform USB device license — separate from .spl; handle separately.
Related docs
- Workflow.spk — export, import read-only flows
- Workflow editor — trial run, issue license entry
- AI chat — workflow library, import license, view details
- Prerequisites & licensing — USB device license
- Tasks & monitoring — batch runs
- Troubleshooting