CamperCamper
21-day free trial, no card

Your org chart already knows. Your groups don’t.

Camper reads people from your IdP over SCIM and keeps every Google group, shared drive, Slack channel, Atlassian team and GitHub team matching the org chart — joiners, leavers, movers and renames included.

One plan · every feature included · from $199/mo

Dry run
7 ops
adddana@acme.comGoogle group · platform@acme.com
adddana@acme.comSlack · #platform-team
adddana@acme.comGitHub team · acme/platform
removekai@acme.comGoogle group · design@acme.com
renameShared drive“Design” → “Brand design”
pinnedjules@acme.comkept on #platform-team — exception
retainsam@acme.comremoval_policy=retain — left in place
Nothing is written until you approve the plan.

The problem

Group membership is not the hard part. Keeping it true is.

Your IdP can push a user into a group. It cannot create the shared drive, rename the channel when the division renames, archive the team when the team dissolves, or tell you which of those a human deliberately made an exception to.

Onboarding is a checklist someone forgets

A new hire needs six groups, two drives, four channels and a team. IT does it by hand, or a script does part of it, and week two is a support ticket about the drive nobody added them to.

Movers keep everything they used to have

Internal transfers are the quiet failure. Access accumulates because removal is the step that never gets automated, and by year three half the org is in groups nobody can justify.

A rename in the org chart is a day of cleanup

Rename a department and the distro, the drive, the channel and the team all still carry the old name — each in a different admin console with different naming rules.

How it works

A control loop, not a nightly script

Camper does not fire off writes and hope. It states what should be true, checks what is actually true in each provider, and closes the gap — continuously, and idempotently enough to run again five minutes later.

01

Ingest

Your IdP pushes users and groups to Camper over SCIM 2.0. Okta, Entra, anything that speaks the standard. Attributes and groups place people on org units you define.

02

Desire

Active identities crossed with your resource links define who should be in what. Pinned exceptions and per-link removal policy are part of the desired state, not overrides bolted on after.

03

Observe

Connectors list the actual members of every managed group, drive, channel and team. Camper never assumes its own last write is still true.

04

Converge

A pure diff engine turns desired-versus-actual into idempotent tasks, executed per provider with rate limiting and retries. Same engine runs the dry run and the real thing.

People come from your IdP. Camper never becomes a second directory.

Identity stays in the plane IT already owns. Camper hosts the SCIM endpoint, accepts whatever attributes and groups your IdP sends, and maps them onto org units you define — so a Rippling-shaped hierarchy and a four-level custom one both work without a per-vendor connector for each HRIS.

Built from operating one

The behaviours you only ask for after you’ve been burned

Camper started as an internal automated-org-resources system. Every item here exists because the version without it caused an incident.

Add without always removing

Every link carries its own removal policy. Full sync where you want strict membership, add-only where a group has legitimate members who never came from the org chart.

Exceptions survive the audit

Pin a person to a resource and they stay, permanently and visibly. The executive assistant on the leadership channel stops getting removed by the nightly run.

Renames fan out on day one

Rename an org unit and every managed resource follows, normalized per provider first — Google's email immutability and Slack's channel namespace do not behave the same way.

Adopt what already exists

The channel existed before IT formalized the team. Attach it instead of recreating it, import in bulk from what the connector can already see, and manage it from there.

Unknown members are drift, not deletes

Someone Camper cannot resolve to an identity gets surfaced as drift for a human to judge. It does not get quietly kicked out of your finance drive.

Dry run before anything is written

Every link goes live through a plan you approve. You see the adds, the removes, the retained members and the renames before a single API call leaves the queue.

Connectors

Every connector is included

There is no connector that costs extra and no integration behind an enterprise tier. If Camper supports it, your plan supports it.

Google Workspace

Groups, shared drives, shared calendars

Slack

Channels, user groups, Enterprise Grid

Atlassian

Teams

GitHub

Organization teams

Microsoft 365

Beta

Groups and Teams via Graph

Ask for the next one

Connector requests come straight from the product and go on the roadmap. No upsell attached.

Directory input is SCIM 2.0 — Okta, Entra and anything else that implements the standard. SAML and OIDC single sign-on are included too.

How we work

Small on purpose, and priced like it

Camper is a deliberately small operation — a handful of people and a lot of automation running the same kind of control loop the product does. That is a constraint, and it shapes the product honestly: no seat expansion games, no sales call before you can see a price, no feature held back for a tier that justifies a bigger contract.

It also means Camper solves one problem properly rather than ten adequately. If you need a platform that does everything, this is not it. If you need the groups, drives, channels and teams to be right, it is.

Tiers

One

Everything included

Sales calls required

Zero

Price is on the site

SSO surcharge

None

SAML and OIDC included

Connector add-ons

None

All connectors included

Point your IdP at Camper and watch the first dry run

Create a workspace with your work email and start dry-running against your own directory. Free for 21 days, no card, nothing written until you approve it.