Slack lets PageOptimized send project alerts and Xavier updates to the channel your team already watches.
Yes, Slack incoming webhooks are created from a Slack app. The app is what owns the webhook URL and the permission to post into a channel.
Official Slack reference: https://api.slack.com/incoming-webhooks
Before you start
- Confirm you can create or manage apps in the target Slack workspace.
- Decide which Slack channel should receive PageOptimized alerts.
- Open PageOptimized in another tab and go to the project.
- Open Publishing > Connections.
- Find the Slack card.
Option A: connect with an incoming webhook
Use this option for simple alerts. It is the fastest setup.
- Open https://api.slack.com/apps.
- Sign in to the Slack workspace you want to connect.
- Click Create New App.
- In the Create new app dialog, choose Blank app under "Or start your own way", then click Continue. Older versions of this dialog call this option From scratch.
- Name the app something clear, such as PageOptimized Alerts.
- Select the Slack workspace.
- Click Create App.
- In the app menu, open Incoming Webhooks.
- Turn Activate Incoming Webhooks on.
- Click Add New Webhook to Workspace.
- Choose the channel where alerts should appear.
- Click Allow.
- Slack returns you to the Incoming Webhooks page.
- Copy the Webhook URL for the channel. It usually starts with https://hooks.slack.com/services/.
- Return to PageOptimized.
- In the Slack card, choose Webhook.
- Paste the URL into Incoming webhook URL.
- Add a Channel label, such as #seo-alerts. This label is for your team; it does not have to be the channel ID.
- Click Save Slack.
- Click Send test alert.
- Check the Slack channel for the test message.
Option B: connect with a bot token
Use this option when you want richer Slack posting behavior or future slash-command workflows.
- Open https://api.slack.com/apps.
- Create a new app or open the app you already created for PageOptimized.
- Open OAuth & Permissions.
- Under Bot Token Scopes, click Add an OAuth Scope and add chat:write. The Install button stays disabled until the app has at least one scope, so add this first.
- If your workspace requires the app to discover public channels, add channels:read.
- If your workspace requires the app to post in private channels, invite the app to that private channel after installation.
- Click Install to Workspace or Reinstall to Workspace.
- Approve the Slack permission screen.
- Copy the Bot User OAuth Token. It starts with xoxb-.
- Open the Slack channel where alerts should go.
- Open channel details.
- Copy the channel ID. It usually starts with C for public channels or G for private channels.
- If you only see a channel link, copy the ID from the URL.
- Return to PageOptimized.
- In the Slack card, choose Bot Token.
- Paste the xoxb token into Slack bot token.
- Paste the channel ID into Channel ID.
- Add a readable Channel label, such as #seo-alerts.
- Click Save Slack.
- Click Send test alert.
What PageOptimized stores
- Webhook mode stores the incoming webhook URL and channel label.
- Bot-token mode stores the bot token, channel ID, and channel label.
- Every save verifies the credential first.
- Every test writes an entry in the Audit Logs tab.
Troubleshooting
- If Save Slack says the webhook failed, create a new webhook in Slack and paste the new URL.
- If bot-token mode fails with not_in_channel, invite the app to the channel in Slack.
- If the channel ID is wrong, copy the ID again from channel details instead of typing the channel name.
- If Slack says missing_scope, add chat:write and reinstall the app.
- If Install to Workspace is greyed out, add at least one Bot Token Scope on the OAuth & Permissions page first. You can ignore token rotation, PKCE, redirect URLs, and IP ranges on that page; none of them are needed for this setup.
- If the test succeeds but your team cannot see the message, confirm you selected the expected workspace and channel.