It connects to your stack without becoming part of it.
Podium's core imports no vendor SDK and names no provider. Every integration is an adapter behind a narrow contract, so swapping Resend for SendGrid is an install and a default flag.
Install it, name the secret, make it the default.
Each integration declares the settings it needs and one credential. You give Podium the name of a secret and it resolves it at call time, so the credential is never in the settings.
A misconfigured provider says so on this screen, with the provider's own error. It does not fail silently as four hundred acceptance emails go out.
One default per capability. Everything else is installed and idle until you point at it.

Six capabilities with an adapter you can install now.
The contract under each is the interesting part. Each is the smallest thing a provider could satisfy, so the widest set of providers can.
Put this rendered message on the wire, and tell us when it bounced. Templating, batching, quiet hours and suppression stay on our side.
Resend
Point it at a verified domain and every acceptance, reminder and campaign goes out through it. Bounces and complaints come back on a signed callback and land on the suppression list unwatched.
SendGrid
The same contract, a different provider. Swapping one for the other is an install and a default flag. No template, schedule or audit trail is rewritten.
Outbox only (no provider)
The default when nothing is installed. Every message is composed, rendered, recorded and never sent. It is how you rehearse an announcement to four hundred speakers.
Two-way sync
List tables, describe their columns, upsert by id, enumerate what changed. Six methods, none of which know what a proposal is.
Airtable
A live mirror of proposals, sessions, speakers and sponsors, in a base your AV contractor and sponsorship lead can open. Linked records, single-selects and attachments, not a wall of text.
Chat
Post this into that channel.
Slack
New submissions, decisions and publication into the committee channel. Nobody waits on someone remembering to tell them.
Assets
Hand back a presigned upload, a presigned download, a delete.
Object storage (R2)
Headshots, slides and recordings upload straight from the browser to your bucket. File bytes never pass through the application, so a 200 MB deck is not a request timeout.
First-pass review
Score this proposal against this rubric, and say why.
First-pass triage (local, no model)
Off unless you switch it on. Its opinions sit beside your reviewers', never inside them, and a machine score never contributes to quorum. The shipped evaluator calls no external model; the contract lets you point it at one you trust.
Ticketing
Is this workshop full? Nothing else.
Ticketing (local stub)
One method on purpose. Registration lives in your ticketing system and attendees are not modelled here. The one answer the schedule needs — has this workshop room left — is cached into the published snapshot, so a public page never calls your provider.
The spreadsheet your team keeps anyway, made live.
Organizers keep a spreadsheet regardless. It holds the columns this tool will never have — hotel booked?, swag size, legal cleared the recording— and it is open to sponsorship sales, the AV contractor and the volunteer coordinator. Today it is a stale copy somebody pasted in March.
Map a kind of record to a table and Podium mirrors it, with linked records, single selects and attachments. Every mapped field is pushed; only the ones you mark two-way come back.
When both sides moved, the inbound edit loses. It is not thrown away: it goes into a conflict queue showing both values, and Podium's value is re-pushed so the table converges.
Decisions, entitlements and the schedule are push-only and always will be. A dropdown in a spreadsheet must not be able to send four hundred rejections at 2 a.m.

You get this without installing anything.
136 named events, 22 API scopes, and a public schedule your CDN can cache. This part is not a plugin.
A REST API with scopes that mean something
Read and write are separate scopes, and personal data is a scope on top. A key for your marketing site reads the schedule and cannot read a review or a speaker's email. Keys are scoped to named events, expire, and are shown once.
Signed webhooks on every change
Every fact the platform records is published as a named event: a proposal accepted, a task completed, a schedule published. Each arrives signed, with retries and a dead-letter queue you can replay from.
An embeddable schedule your site can cache
The public schedule is an immutable, versioned snapshot. Your site embeds it, a CDN caches it, and it renders with scripts blocked. Nothing public reads your database.
Import and export that go both ways
Bring speakers and proposals in from the tool you are leaving as CSV, and take everything back out the same way. No export ticket, no format only we can read.
The caller might not be a person.
A conference team is increasingly one organizer and the agent they work through. The management surface is one versioned API, 190 endpoints with the agenda grid among them, built for a caller that retries and cannot ask what a field meant.
| What the API does | What that stops |
|---|---|
| Every write takes an idempotency key, stored and replayed for 24 hours | A retried call that books the room twice |
| Errors are typed and name the rule that was broken | A caller that reads a bare 400 and guesses |
| A write can carry the version it read; a stale one is refused with the current state | An agent overwriting the edit a human made while it was thinking |
| Read and write are separate scopes, and personal data is a scope on top | A schedule integration reading a speaker's phone number |
| Keys are scoped to named events and expire | One leaked key that reaches every event you have ever run |
| Named events arrive on a signed webhook, at least once | Polling, and the staleness that comes with it |
| The specification is a document a model can read | Guessing what an entitlement is |
The agents in this repository build Podium. They do not run your conference. Podium is written by coding agents working to a specification that comes before the code. One refuses a request the model does not cover. Another checks the code back against the model, and fails the build in CI.
What ships for you is the API above and the model it was built from: a document your own agent can read. There is no bundled assistant, no server your agent connects to and no machine-readable schema file. Anything driving Podium today is driving HTTP.
Specified, with no adapter shipped.
The contracts exist and the install screen knows about them. Nobody has written the provider yet. They are listed so the catalogue above can be read as complete.
- Calendar — Push a speaker's session and tech check into their own calendar.
- CRM — Sponsor fulfilment visible to the sales side without a manual export.
- SSO — OIDC discovery, for organizations that want it for staff and reviewers.
- SMS — For the day-of messages that email is too slow for.
- Video — For the recording pipeline after the event.
Install one against the demo and watch it work.
The demo signs you in as the program chair, with the install screen and the outbox both open to you.
