Shortcuts is Apple's visual automation builder — closer to a lightweight scripting tool than the "run a preset action" feature it's often mistaken for.
The basic building blocks
A shortcut is a sequence of actions, each taking the previous action's output as input — conceptually similar to piping commands together in a shell. Actions range from simple ("Get Current Location") to genuinely powerful ("Run Shell Script over SSH," "Get Contents of URL" for hitting an API).
A practical example: automatic "arrived home" texts
- Automation tab → New Automation → Arrive, set your home address.
- Add action: Send Message, addressed to a specific contact, with text like "Just got home."
- Toggle off "Ask Before Running" if you want it fully automatic (with the confirmation prompt on, it asks each time before sending — useful while you're still testing it).
Calling an API directly
Get Contents of URL: https://api.example.com/weather?city=SF
Get Dictionary Value: "temperature" from [previous result]
Show Notification: "Current temp: [value]°F"
This is a genuinely useful pattern — Shortcuts can hit any HTTP endpoint, parse the JSON response, and act on specific fields, without writing a line of code. Useful for pulling data from a personal API, a home automation hub, or any service with a simple REST endpoint.
Triggered automations, not just manual ones
The Automation tab supports triggers beyond tapping a shortcut manually:
- Time of day — e.g., a "morning brief" that reads calendar events and weather aloud at 7am.
- Arrive/Leave a location — automations tied to geofencing.
- App opened/closed — e.g., automatically enabling Do Not Disturb when opening a specific app.
- NFC tag scanned — tap your phone to a physical NFC tag to trigger a shortcut (e.g., a tag by your bed that sets an alarm and enables Do Not Disturb).
- Focus mode changed — trigger actions when switching between Work/Personal/Sleep focus modes.
Passing data between shortcuts
Shortcuts can call other shortcuts as a sub-step (Run Shortcut action), passing input and receiving output — letting you build small, reusable shortcuts and compose them, the same way you'd break a script into functions instead of one long procedure.
Where it genuinely replaces "real" automation
For anything involving iOS-specific triggers (location, NFC, Focus modes, Share Sheet integration) or simple API calls without needing a server to run continuously, Shortcuts is often a better fit than standing up actual infrastructure — it runs on-device, triggers reliably from iOS system events, and requires no hosting.
Where it hits real limits
Shortcuts can't run continuously in the background polling for changes (it's trigger-based, not a persistent process), has no real error handling beyond basic conditionals, and debugging complex shortcuts through the visual interface gets unwieldy past a certain complexity. For anything needing a persistent server-side process or complex logic, it's a starting point to prototype the idea, not the final implementation.