All docs
3 min read

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:

  1. What the integration does
  2. Prerequisites (account tier, regional gotchas)
  3. Step-by-step credential creation with exact menu paths
  4. Required env vars or per-form config fields
  5. Where Formspring stores / consumes the credentials in the codebase
  6. Security notes (rotation, scope minimisation)
  7. 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 - SlackDriver posts Block Kit messages to a channel webhook.
  • Discord - DiscordDriver sends embeds to a server channel.
  • Telegram - TelegramDriver sends messages via a bot to a chat or group.

Automation platforms

  • Zapier - ZapierDriver fires a Catch Hook trigger.
  • n8n - N8nDriver triggers a Webhook node in self-hosted or cloud workflows.
  • Make - MakeDriver fires a "Custom webhook" trigger.

Spreadsheets & databases

  • Google Sheets - GoogleSheetsDriver appends rows via the Google Sheets API (OAuth); configured under each form’s Integrations screen.
  • Airtable - AirtableDriver creates records via the v0 API.
  • Notion - NotionDriver creates pages in a database.

Email

  • Postmark (outbound) - PostmarkDriver sends transactional email per submission.
  • Resend - ResendDriver sends via the Resend API.
  • SendGrid - SendgridDriver sends via SendGrid v3 mail/send.
  • Mailchimp - MailchimpDriver adds the submitter as an audience member.

CRM

  • HubSpot - HubspotDriver creates a contact in HubSpot CRM.
  • Stripe (customer) - StripeNotificationDriver mirrors 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)

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) - PostmarkWebhookController processes bounces, complaints, and inbound parsing.
  • Stripe billing - wires plan checkout, subscription management, and the billing portal.
  • Hetzner S3-compatible storage - SubmissionFile uses the configured s3 disk 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.