# Nightly PDF snapshot archive of key pages to Slack

> Every night at 11pm, capture PDFs of your critical web pages and post them to a Slack audit channel so legal, compliance, and marketing keep a dated trail.

- Workflow type: code
- Services: Anchor Browser, Slack
- Categories: Operations, Marketing
- Published: 2026-07-17

## What it does

- Renders a full PDF of every page on your watchlist once a night, without anyone clicking anything.
- Drops each PDF into a designated Slack channel with a date-stamped filename so history is easy to scroll.
- Adds a short caption on each upload naming the page, so the channel reads like a labeled archive.
- Sends a follow-up note listing any URL that failed to capture, so nothing goes missing quietly.

## What you'll need

- A Slack workspace and a channel you want to use as the audit log (private is fine).
- An Anchor Browser account, which is what renders each page into a PDF.
- The list of pages you want captured each night, for example your terms of service, privacy policy, status page, key marketing landing pages, and competitor pricing or product pages.

## Prompt

Every night at 11pm on a cron schedule, archive PDF snapshots of a fixed list of critical web pages to a Slack audit channel. This is a deterministic per-URL loop with no LLM reasoning, so build it as a code workflow.

The workflow config holds two things: a list of pages to capture (each entry has a URL and a human-friendly title, for example "General Input Status Page", "Terms of Service", "Acme Pricing") and the Slack channel ID to post into. Typical entries are our own status page, terms and privacy pages, key marketing landing pages, and a few competitor pricing and product pages.

For each page in the list, do two steps in order:

1) Call Anchor Browser's Get Page PDF on the URL to render the page and return the binary PDF. Get Page PDF is one of Anchor's auto-session AI tools, so it manages a throwaway browser session on its own; do not start or stop a session explicitly.

2) Call Slack's Upload a File to post the PDF into the configured audit channel. The filename should be `{dateISO}-{urlSlug}.pdf`, where `dateISO` is today's date in YYYY-MM-DD form and `urlSlug` is a lowercase, hyphenated slug derived from the page title (for example `2026-07-17-acme-pricing.pdf`). Set the initial comment to a short caption that names the page and shows the URL, for example "Acme Pricing — https://acme.com/pricing".

Handle per-URL failures without aborting the whole run. Wrap each iteration so an error on one page (Anchor render failure, Slack upload failure, timeout) is caught, the URL and error message are collected into a failures list, and the loop continues to the next page. At the very end, if the failures list is non-empty, call Slack's Send a Message once to the same audit channel with a plain-text summary shaped like:

failed: https://acme.com/pricing — timeout after 30s
failed: https://example.com/tos — 403 Forbidden

One line per failure. If everything succeeded, do not post a summary message. The successful PDF uploads themselves are the signal.

Use the Slack (user OAuth) integration for both the file upload and the failure summary, since it is the integration that exposes Upload a File. The channel ID comes from workflow config; do not look it up dynamically. Do not try to store the PDFs anywhere else; Slack is the archive.

## How to customize

- Change the schedule to a different time of day, or run it weekly instead of nightly.
- Add or remove pages from the watchlist without changing the workflow itself.
- Point the archive at a different Slack channel per team (one for legal, one for marketing).

## FAQ

### How many pages can I put on the watchlist?

A few dozen is comfortable. The workflow captures each page one at a time, so runtime scales with the length of the list. If you have hundreds of pages, split them across multiple runs or channels.

### Will this work on pages that require login?

This basic version captures pages that are publicly reachable, which covers T&Cs, privacy policies, status pages, marketing pages, and most competitor pages. If you need to archive pages behind a login, you can extend the workflow to use a saved Anchor Browser profile.

### Where do the PDFs actually live long-term?

In your Slack channel history. Because Slack channels are already a system of record with search and permissions your team is used to, they double as a durable archive. You can also download any PDF directly from the message.

### What happens if one of the pages is down or slow?

The other pages still archive normally. At the end of the run, the workflow posts a single message listing any URL that failed and why, so you know exactly which ones to retry.

### Can I archive to Google Drive or S3 instead of Slack?

Right now Slack is the reliable path because it accepts a binary file upload with a caption and gives your team notifications for free. You can layer another destination on later if you outgrow Slack.

Use this prompt in General Input: https://www.generalinput.com/prompts/nightly-pdf-snapshot-archive-of-key-pages-to-slack