Send automated website screenshots to Slack.
Schedule a capture of any web page and post it straight into a public or private Slack channel, then have a change alert call out the runs where the page actually moved. Built in on every plan, including the free one. No Zapier in the middle and no code to write.
- Slack is built in. No second tool to buy and no connector tier to reach.
- Log in, click through, and fill forms before the capture, then post the result.
- Watch a selector and get an alert in the channel when the page changes.
25 free screenshots / month · no credit card · no phone number
Pricing page changed: .plan-price went from $29 to $34.
How to send screenshots to Slack in four steps
Roughly two minutes, once. After that the captures arrive on their own for as long as the config is running.
-
Create a screenshot
Click + Create Screenshot in PagePixels and paste the page URL. Set the interval while you are there, from every five minutes to once a year.
+ Create Screenshot -
Connect to Slack
Click Connect in the right sidebar and authorise the workspace. One approval covers every config in the account.
Connect → authorise -
Name the channel
Add the channel you want, public or private, and a title for the post so the channel reads properly at a glance. Optional.
#channel · note -
Save the screenshot
Hit Save Screenshot, top right. The first capture runs immediately and the schedule takes over from there.
Save Screenshot
Skip step three and captures go to your workspace's #general channel. Prefer to do it from code? The same config is one POST to /screenshot_configs, or one tool call from an agent over MCP.
Every capture posts. The alerts tell you which ones matter.
A channel full of identical screenshots gets read for a week and muted in the second. That is what the change alert is for: it sits alongside the schedule and speaks up only when the page has actually moved.
Watch a CSS selector and PagePixels compares each capture with the one before it. When the selector moves, an alert arrives naming the page, the selector, the previous value, and the new one, so nobody has to diff two screenshots by eye.
Both are on every plan, including free. So is the capture engine behind them: a real browser session that can log in, dismiss the cookie banner, and click through before the shutter fires.
-
Every scheduled capture
scheduleThe interval fires, the capture runs, and the image posts to the channel. Right for a daily dashboard or a weekly report someone is expected to read.
every 1 day · 09:00 -
A change alert on a watched selector
changeAdd a Change Notification step and point it at a CSS selector. Each capture is compared with the one before it, and the alert names the page, the selector, the previous value, and the new one.
type: "change" · send_to: "slack" -
On demand, from code or an agent
api · mcpTrigger a capture from your own service or let an AI agent do it over MCP. The result reaches the channel the same way a scheduled one does.
POST /screenshot_configs
What lands in the channel, and where you can point it.
Public channels, private channels, and a title of your own on each post. Authorise once and the workspace stays connected.
- Channel selected_slack_channel
- Any public or private channel in the connected workspace. Leave it blank and the post goes to #general.
- Post title selected_slack_note
- Your own label on the message, so a channel carrying several configs still reads clearly.
- Who posts it send as user
- Post as the PagePixels app, or as yourself, so the message sits under the identity the channel expects.
- The image attachment
- The capture itself, in PNG, JPEG, WebP, or PDF, full page or a single selector.
- What changed change alert
- On a change alert, the watched selector with its previous value beside the new one.
- The rest of the delivery cdn_url
- Every capture is also filed in the archive and reachable through a permanent link, whether or not the channel is watching.
The pages worth posting are usually behind something.
A dashboard behind a login. A checkout step you have to click into. A consent wall covering the thing you actually wanted to see. A tool that only takes a URL cannot reach any of it, so what lands in Slack is a login screen.
Multi-step capture runs your steps in order in a real browser session first: fill the fields, submit, wait for the element, then capture. Thirteen action types, point-and-click in the app or as a parameter in the API, on every plan.
You can also capture from a Real Location in 150+ countries, states, and cities, so a geo-gated page arrives in the channel the way a customer in that market sees it.
-
Go to the login page url
-
Fill email and password text_field ×2
-
Click submit click
-
Wait for the dashboard wait_for_selector
-
Capture the page png · 1440 × 2400
-
Post to #ops-daily send_to: slack
Four channels people actually keep unmuted
Each of these is one config: a URL, an interval, a watched selector, and a channel.
-
#competitive-intel
Competitor pricing changes
Capture a rival's pricing page hourly and watch the price element, so the channel gets the old figure beside the new one the moment it moves.
hourly · watch .plan-price -
#ops-daily
The dashboard nobody opens
Log in, wait for the charts to render, capture, and drop the image into standup before anyone asks for it.
daily 09:00 · multi-step login -
#marketing-qa
Landing pages, from the market
Capture a campaign page from the country it is running in, so geo-gated copy and consent walls are checked by a human.
daily · Real Location -
#status-watch
A vendor's status page
Watch a supplier's status page and let the channel know the moment the wording changes, rather than when a customer tells you.
every 5 min · watch .status
Slack is not a paid add-on here.
This list is the same on the free plan and the largest one. The only number that changes between plans is how many screenshots you take.
Capture
5 INCLUDED- Multi-step capture Log in, click, fill forms, and wait for elements before the shutter fires.
- Scheduled screenshots Recurring captures from every five minutes to once a year.
- Real Locations Capture through a proxy network in 150+ countries, US states, and cities.
- Ad, tracker, and banner removal Strip cookie consent walls, ads, and third-party scripts before capture.
- CSS and JS injection Restyle or manipulate the page before the capture is taken.
Understand
4 INCLUDED- AI analysis Ask a question of any capture and get a written answer back with the image.
- Custom HTML screenshots Render email, private spreadsheet rows, or API payloads into an image.
- HTML extraction Pull fully rendered HTML from JavaScript-built pages, whole page or one selector.
- Website domain research Extract structured fields across a list of domains, as JSON or CSV.
Watch
3 INCLUDED- Change notifications Watch a selector and get a webhook, Slack message, or Zap when it moves.
- Archived history Every capture is kept and listable through the API, with dated thumbnails.
- CDN embed URLs A permanent link that always shows the latest capture, no API key exposed.
Deliver
3 INCLUDED- Every integration Zapier, Make, n8n, Power Automate, Slack, Dropbox, webhooks, Chrome, and MCP.
- Full REST API Every option is a parameter, with NPM, PyPI, and RubyGem packages.
- Custom headers and cookies Send your own headers, cookies, user agent, language, and time zone.
Screenshots in Slack, answered.
Create a screenshot config with the page URL and an interval, click Connect in the sidebar to authorise your Slack workspace, name the channel, and save. The first capture posts immediately and the schedule takes over. It is four steps in the web app, and the same setup is available through the API.
Yes. Slack, and every other integration, is on every plan including the free one. There are no connector tiers and no per-destination fees. The free plan is 25 screenshots a month with no credit card and no phone number.
Yes. Any public or private channel in the workspace you authorise. If you leave the channel field blank, posts go to your workspace's #general channel.
Yes. Add a Change Notification step, point it at a CSS selector, and set it to send to Slack. Each capture is compared with the one before it, and when the selector moves an alert arrives in the channel naming the page, the selector, the previous value, and the new one.
No. Slack is a native destination, so nothing sits between the capture and the channel. Use Zapier, Make, n8n, or Power Automate when the capture needs to trigger something else as well, or when it has to reach an app we do not connect to directly.
Yes. A single config can post to Slack, save to Dropbox, and hit your own webhook on the same run, and the capture is still filed in the archive with a permanent CDN link. Delivery is a list, not a single choice.
Yes. Multi-step capture runs your steps in order in a real browser session first: fill the fields, submit, wait for the element to appear, then capture. Thirteen action types are available, point-and-click in the app or as parameters in the API, on every plan.