Pageoptimized
API and integrations

Connect Slack alerts to a project

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.

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

  1. Confirm you can create or manage apps in the target Slack workspace.
  2. Decide which Slack channel should receive PageOptimized alerts.
  3. Open PageOptimized in another tab and go to the project.
  4. Open Publishing > Connections.
  5. Find the Slack card.

Option A: connect with an incoming webhook

Use this option for simple alerts. It is the fastest setup.

  1. Open https://api.slack.com/apps.
  2. Sign in to the Slack workspace you want to connect.
  3. Click Create New App.
  4. 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.
  5. Name the app something clear, such as PageOptimized Alerts.
  6. Select the Slack workspace.
  7. Click Create App.
  8. In the app menu, open Incoming Webhooks.
  9. Turn Activate Incoming Webhooks on.
  10. Click Add New Webhook to Workspace.
  11. Choose the channel where alerts should appear.
  12. Click Allow.
  13. Slack returns you to the Incoming Webhooks page.
  14. Copy the Webhook URL for the channel. It usually starts with https://hooks.slack.com/services/.
  15. Return to PageOptimized.
  16. In the Slack card, choose Webhook.
  17. Paste the URL into Incoming webhook URL.
  18. Add a Channel label, such as #seo-alerts. This label is for your team; it does not have to be the channel ID.
  19. Click Save Slack.
  20. Click Send test alert.
  21. 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.

  1. Open https://api.slack.com/apps.
  2. Create a new app or open the app you already created for PageOptimized.
  3. Open OAuth & Permissions.
  4. 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.
  5. If your workspace requires the app to discover public channels, add channels:read.
  6. If your workspace requires the app to post in private channels, invite the app to that private channel after installation.
  7. Click Install to Workspace or Reinstall to Workspace.
  8. Approve the Slack permission screen.
  9. Copy the Bot User OAuth Token. It starts with xoxb-.
  10. Open the Slack channel where alerts should go.
  11. Open channel details.
  12. Copy the channel ID. It usually starts with C for public channels or G for private channels.
  13. If you only see a channel link, copy the ID from the URL.
  14. Return to PageOptimized.
  15. In the Slack card, choose Bot Token.
  16. Paste the xoxb token into Slack bot token.
  17. Paste the channel ID into Channel ID.
  18. Add a readable Channel label, such as #seo-alerts.
  19. Click Save Slack.
  20. Click Send test alert.

What PageOptimized stores

  1. Webhook mode stores the incoming webhook URL and channel label.
  2. Bot-token mode stores the bot token, channel ID, and channel label.
  3. Every save verifies the credential first.
  4. Every test writes an entry in the Audit Logs tab.

Troubleshooting

  1. If Save Slack says the webhook failed, create a new webhook in Slack and paste the new URL.
  2. If bot-token mode fails with not_in_channel, invite the app to the channel in Slack.
  3. If the channel ID is wrong, copy the ID again from channel details instead of typing the channel name.
  4. If Slack says missing_scope, add chat:write and reinstall the app.
  5. 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.
  6. If the test succeeds but your team cannot see the message, confirm you selected the expected workspace and channel.