Private Connectors
Private connectors
Use the same scoped API and approval rules from Zapier, Make or n8n. Each connection has its own app key and webhook subscriptions.
Connect an app
- Open Settings → Developers & Integrations → Apps. The owner creates a dedicated key for the intended app and reviews its preset permissions and locations.
- Use the supplied private installation link/package for that platform. A tile shows an install link only after a real private URL is configured; these packages are not a claim of public marketplace availability.
- Choose Live or DEV sandbox in the connector, then enter its dedicated key. A sandbox needs a provisioned school and sk_test_ key.
- Use a stable source action id as the operation key. A pending approval remains pending in Swummy; enrollment confirmation and fee payment stay with the family.
App keys are typed as app:zapier, app:make or app:n8n. General API keys and OAuth agents cannot manage these app-owned subscriptions. The App Webhooks reference covers all four lifecycle routes.
Signed subscriptions
Create a subscription with POST /v1/webhook_endpoints, providing a public HTTPS url, supported events and optional location_ids. Store the returned secret securely. Get its status, fetch a retained canonical event, and disable it with the same app key. POST and DELETE require Idempotency-Key. A key can subscribe only to event areas it can read, within its locations.
| Platform | Delivery handling |
|---|---|
| Zapier | Private REST-hook triggers verify the exact incoming raw bytes and signature before emitting an event. |
| n8n | The private trigger manages create/check/delete lifecycle and verifies raw bytes. Protect the signing secret in workflow static data; verify raw-body support on the intended instance. |
| Make | The private instant trigger retrieves the canonical event through the authenticated app-owned event endpoint. Incoming family/payment fields alone are not trusted. Optional raw-byte HMAC support requires the intended custom-app account features. |
Verify signatures before trusting a payload, deduplicate event ids, and keep side effects repeat-safe. Disabling/revoking a connection prevents new deliveries under that authority. Reconnect requires current scopes and resets the endpoint failure interval.
Actions and approvals
The supplied connector actions include finding families/swimmers, creating a family, adding a swimmer, requesting class enrollment, marking attendance and sending in-app messages as supported by each package. Their permissions, current roster checks and owner approvals use the same backend as REST/MCP. The full API reference is the contract for custom requests; each package exposes its own selected modules.
Paid enrollment is a family-confirmed request, never an API charge. The general enrollment API additionally supports a verified free occurrence with mode=free and instance_id. There are no connector actions for refunds, payouts, bank/plan changes or family/swimmer deletion.
Existing connections
Booking Intake credentials remain intake-only, with their legacy headers supported; they do not gain general roster access. Existing Attributed Links integrations have a controlled migration path to signed app deliveries. Review and migrate each intended connection; this documentation does not imply a bulk migration has run or that both old and new senders should be enabled together.