Some links on this page are affiliate links: if you buy through them we may earn a commission, at no extra cost to you.
You can change your Slack custom status from an iPhone or iPad with an Apple Shortcut that calls Slack’s Web API. The request uses a Slack user access token with the users.profile:write scope; it changes your status text and emoji, and can set an expiration. It does not change your Active/Away availability or pause notifications.
What the Shortcut changes—and what it doesn’t
Slack’s custom status is the message and optional emoji shown on your profile, such as “In a meeting” with a calendar emoji. You can also give that status an expiration. Slack treats this separately from your availability (Active or Away) and notification settings. The API request in this guide changes the custom status only; it does not set your availability or pause notifications. Slack’s status and availability guide explains the distinction and the manual mobile controls.
The dependable automated approach is to use Shortcuts’ Get Contents of URL action to send a JSON POST to Slack. This is an API-based Shortcut, not a screen-tapping imitation of Slack or a claim that every version of the Slack app exposes a native “Set Status” action. Apple documents using web requests in Shortcuts to connect apps and services when a built-in action is not available.
Free tools Windows power users keep installed
One-click scans. No signup required.
What you need
- An iPhone or iPad with Apple’s Shortcuts app.
- Access to the Slack workspace whose status you want to change.
- Permission to create or authorize a Slack app in that workspace. Workspace or organization policy may restrict this.
- A Slack OAuth user token with the
users.profile:writescope. It must represent the user whose status will change.
Slack documents this method as requiring a user access token beginning with xoxp-. A bot token beginning with xoxb- is not the right credential for changing your personal status. Check Slack’s current users.profile.set API documentation for requirements and workspace restrictions.
#1 Best Overall
- This pre-owned product is not Apple certified, but has been professionally inspected, tested and cleaned by Amazon-qualified suppliers.
- There will be no visible cosmetic imperfections when held at an arm’s length.
- This product is eligible for a replacement or refund within 90 days of receipt if you are not satisfied.
- Product may come in generic Box.
Create or authorize a Slack app
- Open Slack’s API/app dashboard and create an app for the intended workspace, or select an existing app.
- Open OAuth & Permissions.
- Under User Token Scopes, add
users.profile:write. - Install or reinstall the app in the workspace so the new scope is authorized.
- Copy the app’s OAuth User Token. Confirm that it is a user token beginning with
xoxp-, not a bot token.
Dashboard labels can change, and some workspaces require an administrator to install or approve apps. If you cannot authorize the app or the method is restricted for your role or organization, ask your Slack administrator or use Slack’s manual status editor. Do not assume every workspace has the same permissions.
Build a fixed-status Shortcut
Start with one status so you can verify the connection before adding menus or automation. In Shortcuts, create a new shortcut and add these actions:
- Dictionary: Create a nested dictionary with a top-level key named
profile. Inside it, addstatus_textwith the valueIn a meeting,status_emojiwith the value:calendar:, andstatus_expirationwith the value0. - URL: Enter
https://slack.com/api/users.profile.set. - Get Contents of URL: Set the method to POST. Add these headers:
Authorization→Bearer YOUR_XOXP_USER_TOKENContent-Type→application/json
Set the request body to JSON and pass the Dictionary action’s result as the body. - Get Dictionary Value: Read the key
okfrom the response. - If: If
okis true, show a notification such as “Slack status updated.” Otherwise, get the response’serrorvalue and display it so you can diagnose the failure.
The request body sent to Slack should have this shape:
Rank #2
- Fully unlocked and compatible with any carrier of choice (e.g. AT&T, T-Mobile, Sprint, Verizon, US-Cellular, Cricket, Metro, etc.).
- Inspected and guaranteed to have minimal cosmetic damage, which is not noticeable when the device is held at arm's length.
- Successfully passed a full diagnostic test which ensures like-new functionality and removal of any prior-user personal information.
- The device does not come with headphones or a SIM card. It does include a charging cable that may be generic.
- Tested for battery health and guaranteed to have a minimum battery capacity of 80%.
{
"profile": {
"status_text": "In a meeting",
"status_emoji": ":calendar:",
"status_expiration": 0
}
}
Using Shortcuts’ Dictionary action is less error-prone than hand-typing JSON into a Text action, especially once you add variables. Apple’s guide covers the Get Contents of URL action, POST requests, and JSON request bodies.
Slack’s method accepts JSON and recommends it. status_text is limited to 100 characters. Emoji values can be workspace-enabled names such as :calendar:; availability can vary for custom emoji, so test the emoji in the target workspace. A standard Unicode emoji such as 📅 is another option.
Add a menu of statuses
Once the fixed request works, add a Choose from Menu action before it. Create options such as Focus time, In a meeting, Lunch, Traveling, Out of office, and Clear status. In each menu branch, set the status text, emoji, and expiration variables, then feed those values into the same nested Dictionary and request action.
Rank #3
- This phone is unlocked and compatible with any carrier of choice on GSM and CDMA networks (e.g. AT&T, T-Mobile, Sprint, Verizon, US Cellular, Cricket, Metro, Tracfone, Mint Mobile, etc.).
- Tested for battery health and guaranteed to have a minimum battery capacity of 80%.
- Successfully passed a full diagnostic test which ensures like-new functionality and removal of any prior-user personal information.
- The device does not come with headphones or a SIM card. It does include a generic (Mfi certified) charging cable.
- Inspected and guaranteed to have minimal cosmetic damage, which is not noticeable when the device is held at arm's length.
For example, the Lunch branch could set status_text to Out to lunch, status_emoji to :fork_and_knife:, and expiration to 0. A Clear status branch should use empty strings for both fields:
{
"profile": {
"status_text": "",
"status_emoji": ""
}
}
Slack documents empty status text and emoji as the way to clear a custom status. Keeping the menu values short also avoids the 100-character status-text limit.
Set an automatic expiration
The status_expiration field is a Unix timestamp in seconds. Slack clears the status when that time is reached. A value of 0, or leaving the field out, means the status does not expire.
Rank #4
- This phone is unlocked and compatible with any carrier of choice on GSM and CDMA networks (e.g. AT&T, T-Mobile, Sprint, Verizon, US Cellular, Cricket, Metro, Tracfone, Mint Mobile, etc.).
- Please check with your carrier to verify compatibility.
- The device does not come with headphones or a SIM card. It does include a generic (Mfi certified) charging cable.
- Tested for battery health and guaranteed to have a minimum battery capacity of 80%.
To expire a status after a duration such as one hour, build the timestamp dynamically in Shortcuts rather than hard-coding a date:
- Use Current Date.
- Use Adjust Date to add the desired number of minutes or hours.
- Format the adjusted date as a Unix timestamp in seconds using Shortcuts’ date-formatting options, then use that result for
status_expiration. - Test with a short interval, such as five minutes, and verify that the status clears at the expected time.
Do not use milliseconds: a timestamp in the wrong unit can make a status expire immediately or at an unintended time. Slack’s regular mobile editor also lets you choose when a status clears; scheduled statuses are a separate Slack interface feature.
Recommended Free Tools
Check the response and troubleshoot
Slack returns an ok field. Treat the call as successful only when that value is true; otherwise, display the returned error instead of a generic “done” message. During setup, showing the full response can help identify a scope, token, or permission problem. Error names below are examples, not a complete list.
Best Value
- 4.7-inch Retina HD display. 5G capable
- Advanced single-camera system with 12MP Wide camera; Smart HDR 4, Photographic Styles, Portrait mode, and 4K video up to 60 fps
- 7MP FaceTime HD camera with Smart HDR 4, Photographic Styles, Portrait mode, and 1080p video recording. Home button with Touch ID for secure authentication
- A15 Bionic chip for lightning-fast performance. Durable design and IP67 water resistance
- Up to 15 hours of video playback
| Symptom or error | What to check |
|---|---|
invalid_auth or not_authed |
Confirm the token is present, current, and a user token. The header must be Authorization: Bearer …. |
missing_scope |
Add the users.profile:write user-token scope and reinstall or reauthorize the app. |
| The request says it worked, but the status did not change | Confirm the token belongs to the intended user and workspace, and that the JSON has the fields nested under profile. |
| Permission or restricted-action error | The workspace, organization, or your role may block the change. Ask a Slack administrator. |
| Emoji is missing or wrong | Try a standard Unicode emoji or an emoji enabled in that workspace. |
| Status clears immediately or at the wrong time | Recalculate the expiration from the current date and make sure it is Unix time in seconds, not milliseconds. |
| It worked before but stopped | The token may have been revoked or app authorization changed. Reauthorize the app and replace the stored token. |
| Repeated automation fails | Reduce its frequency. Slack documents a limit of 10 profile updates per minute for one user profile. |
Protect the token
This token authorizes changes to your Slack profile. Never publish it, include it in screenshots, or share a Shortcut that contains it. For a personal Shortcut, putting the token in a private action may be convenient, but it is not secure secret management. A shared Shortcut should contain no live credential and should prompt each person to provide their own token privately. If you expose a token, revoke it and reinstall or reauthorize the app as needed.
Optional: make it easier to launch
After testing, you can add the Shortcut to your Home Screen, a Shortcuts widget, or Siri, or use it in an automation that suits your workflow. Avoid high-frequency automations: Slack applies profile-update rate limits, and a status change should not run in a rapid loop.
When to use Slack’s own status editor
Use Slack directly if your workspace does not permit app authorization, you do not want to store a token on your device, or you need controls beyond custom status text and emoji. In Slack’s mobile app, tap your profile picture, tap the status field, enter a message and optional emoji, choose when it clears, then tap Done. Use Slack’s interface when you need to manage availability or notification settings as well.
The Tool Desk
Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

