Skip to main content

Available Integrations

TopFormBuilder supports 8 powerful integrations to connect your forms with the tools you already use.

Communication & Notifications

Slack
  • Send form submissions to Slack channels
  • Real-time notifications
  • Custom message formatting
  • OAuth and webhook methods
Discord
  • Post submissions to Discord channels
  • Webhook-based integration
  • Custom embed formatting
  • Server and channel selection
Microsoft Teams
  • Send notifications to Teams channels
  • Webhook integration
  • Formatted card messages
  • Team collaboration
Email Notifications
  • Send emails on form submission
  • Customizable templates with variables
  • Admin and respondent notifications
  • SMTP support

Data & Spreadsheets

Google Sheets
  • Automatically add rows to spreadsheets
  • OAuth authentication
  • Spreadsheet and worksheet selection
  • Real-time data sync
  • Organized columns by question
Airtable
  • Send submissions to Airtable bases
  • API key authentication
  • Base and table selection
  • Structured record creation

Project Management

Trello
  • Create cards from submissions
  • OAuth authentication
  • Board and list selection
  • Custom card formatting
  • Add labels and due dates

Payments

Stripe
  • Accept payments through forms
  • Stripe Connect workspace integration
  • Multiple currency support (140+)
  • Test and live modes
  • View Stripe Integration Guide

Custom Integrations

Webhooks

Integration Features

Common Features

All integrations include:
  • Easy Setup - Connect in minutes with step-by-step wizard
  • Test Mode - Test integrations before going live
  • Activity Logs - View integration history and debug issues
  • Error Handling - Automatic retries and failure notifications
  • Conditional Triggers - Send data based on form logic
  • Field Mapping - Choose which form fields to send

OAuth vs API Key vs Webhook

OAuth (Google Sheets, Slack, Trello)
  • More secure
  • No need to copy/paste keys
  • One-click authorization
  • Can be revoked anytime
API Key (Airtable)
  • Simple setup
  • Copy API key from service
  • Paste into TopFormBuilder
  • Works immediately
Webhook (Discord, Teams, Custom)
  • Create webhook URL in service
  • Paste URL into TopFormBuilder
  • Instant connection
  • No authentication needed

How Integrations Work

Setup Process

  1. Navigate to Integrations
    Form Builder → Integrations Tab → Add Integration
    
  2. Choose Service
    • Select from 8 available integrations
    • Click integration card to begin setup
  3. Authenticate
    • OAuth: Click “Connect” and authorize
    • API Key: Paste your API key
    • Webhook: Paste webhook URL
  4. Configure Settings
    • Choose destination (channel, sheet, board)
    • Map form fields
    • Customize message format
    • Set conditional triggers (optional)
  5. Test Integration
    • Click “Send Test” button
    • Verify data appears correctly
    • Check formatting and field mapping
  6. Activate
    • Toggle integration ON
    • New submissions automatically sent
    • View activity in integration logs

Data Flow

User Submits Form

Submission Saved

Integration Triggered

Data Formatted

Sent to External Service

Success/Failure Logged

Conditional Integrations

Send data to integrations only when conditions are met. Example Use Cases: Priority Routing
IF priority = "High"
THEN send to Slack #urgent
Department Routing
IF department = "Sales"
THEN send to [email protected]
ELSE send to [email protected]
Payment Handling
IF payment_received = "Yes"
THEN create Trello card in "Paid Orders"
Regional Distribution
IF country = "USA"
THEN send to Google Sheets "US Leads"
ELSE send to Google Sheets "International Leads"

Integration Limits

By Plan

Free Plan
  • Email notifications only
  • 1 webhook integration
  • No OAuth integrations
Pro Plan
  • All 8 integrations
  • Unlimited integrations per form
  • OAuth support
  • Conditional triggers
  • Integration logs (30 days)
Enterprise Plan
  • Everything in Pro
  • Priority support for integration issues
  • Custom integration development
  • Extended logs (90 days)
  • Dedicated integration monitoring

Rate Limits

Per Integration Type:
  • Slack: 1 message per second
  • Discord: 5 messages per 5 seconds
  • Google Sheets: 60 writes per minute
  • Airtable: 5 requests per second
  • Webhooks: No limit (depends on receiving server)
  • Stripe: Per Stripe limits
Handling Rate Limits:
  • Automatic queueing
  • Retry with backoff
  • Error notifications if limit exceeded
  • Resume automatically when available

Integration Logs

Track all integration activity and troubleshoot issues.

Accessing Logs

  1. Go to Form Builder
  2. Click Integrations tab
  3. Select integration
  4. Click “View Logs” button

Log Information

Each log entry shows:
  • Timestamp - When integration triggered
  • Status - Success, Failed, Pending
  • Service - Which integration (Slack, Sheets, etc.)
  • Response - Server response or error message
  • Payload - Data sent (click to expand)
  • Retry Count - Number of retry attempts
Status Icons:
  • ✅ Success - Data sent successfully
  • ❌ Failed - Integration failed (see error)
  • 🔄 Pending - Queued for sending
  • ⏱️ Retrying - Automatic retry in progress

Troubleshooting with Logs

Common Issues: Authentication Failed
Error: 401 Unauthorized
Solution: Reconnect integration (OAuth expired)
Invalid Webhook URL
Error: 404 Not Found
Solution: Verify webhook URL is correct and active
Rate Limit Exceeded
Error: 429 Too Many Requests
Solution: Wait a few minutes, retries happen automatically
Network Timeout
Error: Request timeout
Solution: Check external service status
Invalid Data Format
Error: Validation failed
Solution: Check field mapping and data types

Managing Integrations

Edit Integration

  1. Navigate to Integrations tab
  2. Click integration card
  3. Click “Edit” button
  4. Update settings
  5. Click “Save”
Editable Settings:
  • Destination (channel, sheet, etc.)
  • Field mapping
  • Message format
  • Conditional triggers
  • Active/Inactive status

Disconnect Integration

  1. Open integration settings
  2. Click “Disconnect” button
  3. Confirm disconnection
  4. Integration stops immediately
  5. Logs are preserved
What Happens:
  • No more data sent to service
  • OAuth tokens revoked
  • Historical logs remain visible
  • Can reconnect anytime

Duplicate Integration

Send to multiple destinations of the same service. Example:
  • Slack #general for all submissions
  • Slack #urgent for high-priority only
  • Slack #sales for sales inquiries
How to Duplicate:
  1. Click “Add Integration”
  2. Select same service (e.g., Slack)
  3. Authenticate again (or use existing connection)
  4. Choose different destination
  5. Configure separately

Security & Privacy

Data Transmission

Security Measures:
  • HTTPS encryption for all integrations
  • Webhook signature verification
  • Secure OAuth token storage
  • API keys encrypted in database
  • No data stored in external logs

OAuth Security

Best Practices:
  • Revoke access from service if unused
  • Reconnect if account credentials change
  • Use workspace-specific accounts
  • Review connected apps regularly

Webhook Security

HMAC Signature Verification: All webhooks include signature for verification. Example (Node.js):
const crypto = require('crypto');

const signature = req.headers['x-topformbuilder-signature'];
const payload = JSON.stringify(req.body);
const secret = 'your_webhook_secret';

const hash = crypto
  .createHmac('sha256', secret)
  .update(payload)
  .digest('hex');

if (signature === hash) {
  // Valid webhook
} else {
  // Invalid - reject
}
See full webhook security guide

Data Privacy

GDPR Compliance:
  • Integration data follows form retention settings
  • User can request data deletion
  • Deleting form removes integration data
  • External services follow their own retention
What’s Sent:
  • Form responses only
  • Submission metadata (time, ID)
  • No user IP addresses (unless in form)
  • No tracking cookies

Integration Best Practices

Do’s

Test before activating - Always send test submission ✅ Use descriptive names - Name integrations clearly (e.g., “Slack - Sales Alerts”) ✅ Monitor logs regularly - Check for failures weekly ✅ Use conditional triggers - Reduce noise with filters ✅ Keep credentials secure - Don’t share API keys ✅ Document your setup - Note field mappings for team ✅ Set up fallbacks - Multiple notification channels

Don’ts

Don’t use personal accounts - Use workspace/team accounts ❌ Don’t ignore failed integrations - Fix issues promptly ❌ Don’t send sensitive data - Be careful with PII ❌ Don’t create duplicate alerts - Review existing integrations ❌ Don’t forget to test - Test after any changes ❌ Don’t use free tier webhooks - May have uptime issues

Performance Tips

Optimize Integration Speed:
  • Use webhooks for instant delivery
  • Batch similar integrations when possible
  • Avoid sending large file attachments via integrations
  • Use conditional triggers to reduce volume
  • Monitor rate limits
Reduce Failures:
  • Keep OAuth tokens refreshed
  • Verify webhook URLs regularly
  • Test field mapping with sample data
  • Set up error notifications
  • Use retry logic (enabled by default)

Common Integration Workflows

Lead Capture Workflow

Form Submission

→ Google Sheets (append row)
→ Slack #sales (notify team)
→ Email (send to lead owner)
→ Airtable (CRM sync)

Support Ticket Workflow

Form Submission

IF priority = "High"
    → Slack #urgent
    → Email to manager
ELSE
    → Trello (create card)
    → Email auto-responder

Event Registration Workflow

Form Submission

→ Google Sheets (attendee list)
→ Email (confirmation + calendar invite)
→ Slack #events (team notification)
IF payment_required
    → Stripe (process payment)

Customer Feedback Workflow

Form Submission

→ Airtable (feedback database)
→ Email (thank you message)
IF rating < 3
    → Slack #support (urgent review)
ELSE
    → Teams #feedback (regular review)

Troubleshooting

Integration Not Triggering

Check:
  1. Integration is toggled ON
  2. Form has new submissions (after activation)
  3. Conditional logic allows trigger
  4. No errors in integration logs
  5. External service is operational

Data Not Appearing Correctly

Check:
  1. Field mapping configuration
  2. Data format compatibility
  3. Required fields are mapped
  4. Character limits not exceeded
  5. Special characters handled properly

Authentication Errors

Solutions:
  1. Disconnect and reconnect integration
  2. Verify credentials in external service
  3. Check OAuth app permissions
  4. Regenerate API keys if needed
  5. Clear browser cache and retry

Rate Limit Issues

Solutions:
  1. Wait for rate limit window to reset
  2. Reduce submission frequency
  3. Use conditional triggers to filter
  4. Contact service provider for higher limits
  5. Implement queueing (automatic in TopFormBuilder)
Need help? Contact [email protected]