Formspring integrations - credentials & setup guide
This directory documents every integration the Formspring platform ships and exactly how to obtain credentials for each. Use it as internal reference when onboarding teammates or when an integration starts misbehaving and you need to verify the credential setup.
Each guide covers:
- What the integration does
- Prerequisites (account tier, regional gotchas)
- Step-by-step credential creation with exact menu paths
- Required env vars or per-form config fields
- Where Formspring stores / consumes the credentials in the codebase
- Security notes (rotation, scope minimisation)
- Troubleshooting
If you only need to wire one form to one provider, the in-app "how to set up" panel inside the connect dialog is faster - it's distilled from these docs. Use these full guides when you need the complete picture.
Webhook integrations (per-form)
Each per-form webhook driver lives in app/Integrations/, registered by App\Providers\AppServiceProvider, and stores its credentials in the encrypted webhooks.config JSON column. Teams configure integrations in the hosted dashboard.
Chat & notifications
- Slack -
SlackDriverposts Block Kit messages to a channel webhook. - Discord -
DiscordDriversends embeds to a server channel. - Telegram -
TelegramDriversends messages via a bot to a chat or group.
Automation platforms
- Zapier -
ZapierDriverfires a Catch Hook trigger. - n8n -
N8nDrivertriggers a Webhook node in self-hosted or cloud workflows. - Make -
MakeDriverfires a "Custom webhook" trigger.
Spreadsheets & databases
- Google Sheets -
GoogleSheetsDriverappends rows via the Google Sheets API (OAuth); configured under each form’s Integrations screen. - Airtable -
AirtableDrivercreates records via the v0 API. - Notion -
NotionDrivercreates pages in a database.
- Postmark (outbound) -
PostmarkDriversends transactional email per submission. - Resend -
ResendDriversends via the Resend API. - SendGrid -
SendgridDriversends via SendGrid v3 mail/send. - Mailchimp -
MailchimpDriveradds the submitter as an audience member.
CRM
- HubSpot -
HubspotDrivercreates a contact in HubSpot CRM. - Stripe (customer) -
StripeNotificationDrivermirrors leads as Stripe customers.
Authentication & abuse defence (server-wide)
These integrations need .env configuration on the server (or per-form config managed by team owners).
Social login (OAuth)
- Google OAuth -
Auth\SocialAuthController+config/services.php. - GitHub OAuth - same.
CAPTCHA
- hCaptcha -
App\Spam\Stage\HCaptchaStage. Per-form keys configured on the form record. - Google reCAPTCHA -
App\Spam\Stage\ReCaptchaStage. Per-form keys.
Platform-level integrations
These power the application itself rather than a single form.
- Postmark (inbound) -
PostmarkWebhookControllerprocesses bounces, complaints, and inbound parsing. - Stripe billing - wires plan checkout, subscription management, and the billing portal.
- Hetzner S3-compatible storage -
SubmissionFileuses the configureds3disk for uploads. - AI providers - OpenRouter (default), Anthropic, OpenAI, Gemini, plus 11 others; configured in
config/ai.php.
Updating these docs
When adding a new driver, add a doc here in the same shape. The in-app setupInstructions() returned by App\Integrations\ProviderDriver is the short version; this directory holds the complete version with screenshots-by-prose, security notes, and troubleshooting.