Integrations
Integrations
Connect BuoyForms to the systems that process submissions, alerts, and CRM follow-up.
Available Integrations
Signed Webhooks
Signed webhooks are the primary self-serve automation path. They can send submission events to your own API, middleware, or automation tools that accept incoming webhook requests.
-
1
Open Integration Settings
Go to Settings > Integrations. ::
-
2
Add a Webhook
Click Add Integration > Webhook and enter the HTTPS endpoint that should receive events. ::
-
3
Select Events
Choose which form and submission events should trigger the webhook. ::
-
4
Verify Signatures
Configure the receiving system to verify
X-BuoyForms-SignatureandX-BuoyForms-Timestamp. :: -
5
Test Delivery
Send a test event and confirm the receiving system returns a 2xx response. ::
Supported Events:
| Event | Description |
|---|---|
submission.created |
New form submission |
submission.updated |
Submission modified |
form.published |
Form goes live |
form.unpublished |
Form taken offline |
Salesforce Integration Suite
Salesforce-connected workflows are available through the Salesforce Integration Suite. This is a scoped implementation path for OAuth connection, object selection, field mapping, sandbox validation, launch support, sync logs, and retry handling.
-
1
Connect Salesforce
An authorized workspace admin connects Salesforce through the BuoyForms OAuth flow. ::
-
2
Choose Object and Operation
Select the Salesforce object, upsert key, and operation for the form feed. ::
-
3
Map Fields
Map BuoyForms fields, hidden URL fields, and submission metadata to Salesforce fields. ::
-
4
Validate in Sandbox
Run a test mapping against a sandbox or approved test record before launch. ::
-
5
Enable the Feed
Enable the Salesforce feed for the specific form only after validation passes. ::
Coming Soon and Requestable Providers
Some providers are planned or available only through custom work today:
| Provider | Current status | Recommended path today |
|---|---|---|
| Native Zapier app | Coming soon | Use signed webhooks with Webhooks by Zapier |
| Slack channel notifications | Request-only | Send a signed webhook to your middleware or automation tool |
| Native Google Sheets sync | Coming soon | Export submissions or use a signed webhook automation flow |
| HubSpot | Coming soon | Use signed webhooks or API-based middleware |
Form-Level Configuration
Each integration can be customized per form:
-
1
Open Form Settings
Open a form's Settings. ::
-
2
Go to Integrations Tab
Go to the Integrations tab. ::
-
3
Enable or Disable
Enable only the integrations that should run for this form. ::
-
4
Configure Field Mappings
Configure field mappings to control which data is sent. ::
-
5
Review Logs
Use the integration logs to confirm deliveries, retries, and external record links. ::
Event Types
| Event | Description |
|---|---|
submission.created |
New submission received |
submission.updated |
Submission data modified |
submission.deleted |
Submission removed |
form.created |
New form created |
form.updated |
Form settings changed |
form.published |
Form made public |
form.unpublished |
Form taken offline |
form.deleted |
Form removed |
Webhook Payloads
All webhooks include:
{
"event": "submission.created",
"timestamp": "2025-11-27T10:30:00Z",
"organizationId": "org_...",
"formId": "form_...",
"submissionId": "sub_...",
"data": {
"fields": { ... },
"metadata": { ... }
}
}Webhook Headers
Outbound webhook requests include these headers:
| Header | Description |
|---|---|
Content-Type |
Always application/json |
X-BuoyForms-Signature |
Versioned HMAC signature for verifying the timestamped request body |
X-BuoyForms-Timestamp |
Unix timestamp used in the signature; reject requests outside a 5-minute window |
X-BuoyForms-Event |
Event type, such as form.submission.created |
X-BuoyForms-Delivery |
Unique delivery attempt ID |
Idempotency-Key |
Stable deduplication key for retries and replays |
For submission events, Idempotency-Key uses <submissionId>-<event>, for example sub_123-form.submission.created. If a webhook payload does not include a submission ID, BuoyForms falls back to <deliveryId>-<event>.
Retry Logic
Failed webhook deliveries retry automatically:
| Parameter | Value |
|---|---|
| Retry attempts | 3 |
| Retry delays | 1 min, 5 min, 30 min |
| Timeout | 30 seconds per attempt |
View delivery status in Settings > Integrations > Logs.
Security
- Webhook payloads include HMAC signatures for verification
- OAuth tokens are encrypted at rest for OAuth-based providers
- Credentials are scoped per organization
- Form-level feeds can be disabled independently
- Revoke access anytime from integration settings
Troubleshooting
- Verify the integration is enabled for the specific form
- Check that the selected events match your expected triggers
- Review the integration logs for errors
- Confirm the form is published; draft forms do not fire integration events ::
- Ensure your endpoint returns 2xx status codes
- Check for timeout issues; keep processing under 30 seconds
- Verify the endpoint accepts POST requests with JSON body
- Check the Integrations > Logs panel for HTTP status codes and error details ::
- Confirm the automation tool is using an incoming webhook trigger
- Confirm the trigger URL is copied into the BuoyForms webhook configuration
- Verify the automation tool accepts the event payload shape
- Review BuoyForms delivery logs for retry attempts or non-2xx responses ::
Advanced: Custom webhook headers
You can add custom HTTP headers to webhook requests for authentication with your backend. Go to the webhook configuration and add key-value pairs under Custom Headers. Common uses include passing API keys or correlation tokens to your receiving service.