slackscraperpilot
// how it works

Slack channel sync,
search, and export.

A walkthrough of how Slackscraper connects to Slack, backfills approved channels, applies message events, and produces JSONL exports with evidence.

// system diagram
YOUR SLACK WORKSPACE
OAuth · read-only · revocable
SLACKSCRAPER EDGE
stateless · processes events
EXPORT ARTIFACTS
JSONL · manifest · checksums
encrypted in transit governed storage + export
01

Install the Slack app

OAuth handshake with your workspace. We request read-only channel history, channel metadata, and user lookup scopes for approved channels. A workspace admin approves and we never ask for write access — we cannot send messages, modify channels, or impersonate users.

Read-only scopes
Admin approved
OAuth 2.0
slackscraper · step 01
# During setup, your workspace admin reviews
# the read-only scopes for approved channel sync.
→ acme-corp.slack.com
→ requested scopes: channel history + channel metadata
→ approved: 2026-05-23T10:02Z
02

Backfill the history

Slackscraper crawls every channel you authorize, in parallel, respecting rate limits. Backfill is resumable: if the connection drops, it picks up where it left off. Idempotent: re-running it never duplicates a message.

Parallel · per-channel
Resumable on failure
Idempotent writes
slackscraper · step 02
$ slackscraper sync --workspace acme \
--since 2018-01-01
syncing #eng-platform ........... 100% · 412k
syncing #product-launch-q3 ...... 100% · 89k
syncing #incident-2026-05-14 .... 100% · 1.4k
...
✓ 8,241,902 messages · 1.6 GB · 4m 12s
03

Stream new events

After backfill, Slackscraper accepts signed Slack Events API callbacks for channel messages. Creates, edits, and deletions update the canonical store and preserve deletion tombstones.

Signed callbacks
Create/edit/delete events
Deletion ledger
slackscraper · step 03
# Live event ingestion:
[10:42:18Z] message.created #eng-platform maya.chen
[10:43:04Z] message.created #eng-platform ravi.k
[10:44:55Z] message.edited #eng-platform jules
[10:45:12Z] message.deleted #incident-2026-05-14
✓ signed event batch normalized
✓ stale replay cannot resurrect deleted content
04

Export Slack history

Create current-state JSONL exports from the governed store. Export jobs can write local artifacts or S3-compatible object-store objects with manifest checksums and access-profile scoping.

JSONL files
Local or object store
Checksummed manifest
slackscraper · step 04
$ slackscraper export create \
--workspace acme \
--destination-type object_store \
--async
✓ export job completed
✓ messages.jsonl written
✓ manifest.json includes record counts + SHA-256 checksums
// the boring but important part

Security &
data handling.

Review security page →

Read-only scopes

We cannot send messages, modify channels, or impersonate users. Period.

Encrypted transit

TLS 1.3 from Slack to us. TLS 1.3 from us to your destination. Always.

Governed storage

Messages live in the configured store for retrieval, deletion handling, and export generation.

Revocable instantly

An admin can remove the app at any time. We stop receiving events immediately.

Tenant boundaries

Tenant and workspace keys are enforced through repositories, authorization checks, and operational review.

Channel-focused scope

The hosted ingestion path is intentionally focused on approved public and private channels.

Export evidence

JSONL exports include manifest files, record counts, checksums, and chain-of-custody metadata.

Audit events

Credential, access profile, deletion, export, job replay, and operations actions are audited.

$ slackscraper init

Ready to try it?

Start with a scoped pilot. Confirm approved channels, run one sync, and review exported JSONL evidence.

Plan a pilot →