Baserow Tally Integration - Capture Forms via Webhook

Connecting Tally to Baserow means every form submission triggers an automation that receives an HTTP POST request with JSON data over a webhook, then a Create Row action maps the submitted fields onto table columns - this guide walks through configuring both sides and covers a direct REST API alternative for cases that need custom logic.

How It Works

The integration follows a three-step process:

  1. Trigger (Tally): a form submission sends an HTTP POST request with a JSON payload.
  2. Listener (Baserow): the webhook URL receives that request.
  3. Action (Baserow): the JSON data maps to database columns.

Part 1: Baserow Listener Setup

Create the webhook receiver:

  1. Navigate to the Automations tab in the target Baserow table.
  2. Create a new workflow.
  3. Select the “Receive an HTTP request (webhook)” trigger.
  4. Set a label (for example, “Incoming Tally Submissions”).
  5. Select POST as the allowed HTTP method.
  6. Copy the generated webhook URL.

Baserow webhook listener setup for receiving Tally form data

Part 2: Tally Webhook Configuration

Configure Tally to send data:

  1. Open the published Tally form and go to the Integrations tab.
  2. Select Connect to Webhooks.
  3. Paste Baserow’s webhook URL into the Endpoint URL field.
  4. Optionally add a signing secret for security (generates a SHA256 hash in the Tally-Signature header).
  5. Save the integration.

Tally webhook configuration with a Baserow endpoint URL

Part 3: Mapping the Data

Step 1: Capture Sample Data

Submit a test response through the Tally form. Click “Test event” in the Baserow automation builder. A typical JSON structure looks like this:

{
  "data": {
    "formName": "Customer Feedback",
    "fields": [
      { "label": "Full Name", "value": "Jane Doe" },
      { "label": "Email", "value": "jane@example.com" }
    ]
  }
}

Step 2: Create the Row Action

Add a “Create Row” action:

  • Select the target table.
  • Use the blue “+” icon to map Tally JSON fields to Baserow columns.
  • Example: map fields[0].value to the Name column.

Alternative: Direct API Method

Use a serverless function or middleware as a bridge between the two systems.

Tally API: REST-based, HTTPS only, base URL https://api.tally.so.

Baserow API call example:

curl -X POST "https://api.baserow.io/api/database/rows/table/{table_id}/?user_field_names=true" \
  -H "Authorization: Token YOUR_DATABASE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"Full Name": "Jane Doe", "Email": "jane@example.com"}'

YOUR_DATABASE_TOKEN is a Baserow database (API) token used in place of personal login credentials.

Comparison

  • Baserow Automations: a no-code solution that handles parsing inside the UI.
  • Direct API: better suited for complex logic that needs data transformation before storage.

Practical Scenario: Handling Incoming Submissions at Scale

Benefits of the webhook integration:

  • Stability: Tally retries failed requests (after 5 minutes, 30 minutes, and up to a day).
  • Efficiency: avoids the rate limits that come with polling an API (100 requests per minute).
  • Automation: triggers secondary actions such as Slack notifications or CRM updates.

Frequently Asked Questions

Does receiving the webhook require a separate server? No - the Baserow automation itself provides the webhook URL, so no extra server is needed. For more on how webhooks work in general, see Webhooks in Baserow .

What happens if the Tally form’s structure changes? Update the field mapping in the Create Row action manually - there is no automatic remapping when a form changes, so send a fresh test event after editing the form.

Does this approach work with forms other than Tally? Yes - any service that can send an HTTP POST request with JSON can work with the Baserow listener the same way; the trigger-listener-action pattern is not specific to Tally.

Related reading: the Baserow REST API overview for direct calls without webhooks, and Power Automate integration as an alternative way to connect forms and tables.

Reviewed by OpenNix LLC · Last updated on