Automation

Automation allows you to integrate Visual DB with other systems. For example, when records are created, updated, or deleted, you can automatically send emails through Zapier, post messages on Slack or Discord, or trigger custom workflows in your own applications. Visual DB uses webhooks, an industry standard way for applications to communicate with each other in real-time.

Configuring Webhooks

To configure a webhook in Visual DB you need to know the webhook URL of the service you are integrating with. The webhook URL is essentially the “address” where Visual DB will deliver the data when the trigger event occurs. Each service provides this URL through their own interface.

  • For Zapier, the webhook URL is displayed when you configure a “Webhooks by Zapier” step.

  • For Slack, this is the incoming webhook URL for a specific channel, which is generated when you create an incoming webhook integration in your Slack workspace settings.

  • For Discord, this is the webhook URL for your Discord channel, created through Server Settings → Integrations → Webhooks.

  • For your own service, this is any HTTP endpoint you’ve created that can receive POST requests with JSON data.

Once you have the webhook URL, you are ready to configure webhooks in Visual DB. Open the design panel of the sheet or form, then click the Add a webhook button. In the webhook dialog add a name and paste the webhook URL. Select one or more events such as record created, record updated, or record deleted, depending on what actions should trigger the webhook. For the body format, you can use the default body for services like Zapier or your own custom service. However, Slack and Discord require a custom body format as described below. Make sure to test the webhook by pressing the Test button, then press OK to close the dialog.

Webhook Body

The webhook body uses JSON syntax. Fields are inserted into the body using handlebars syntax, for example: {{customer_name}}.

When possible, use the default body because it requires the least amount of maintenance. When fields are added or removed from the query associated with the sheet or form, the default body will automatically have the new set of fields.

Some services such as Slack and Discord expect a fully formatted message. Visual DB enables this by offering three flavors of field values to give you formatting flexibility.

1. {{field}} - Raw JSON Value

  • Output: Valid JSON syntax (numbers, booleans, quoted strings)

  • Use case: API endpoints, programmatic processing

  • Examples:

    • {{amount}}123.45 (number)

    • {{customer_name}}"John Doe" (quoted string)

    • {{is_active}}true (boolean)

    • {{created_at}}"2025-09-18T14:30:00Z" (ISO date string)

2. {{field:formatted}} - Formatted JSON Value

  • Output: Human-readable but still valid JSON syntax (always quoted strings). If a formatted value is not available the output is same as raw.

  • Use case: Rich UI displays, reports

  • Examples:

    • {{amount:formatted}}"$123.45"

    • {{created_at:formatted}}"9/18/2025 2:30 PM"

3. {{field:bare}} - Plain Text for String Insertion

  • Output: Raw text without JSON quotes

  • Use case: Direct insertion into messages (Slack, Discord, SMS)

  • Examples:

    • {{amount:bare}}123.45

    • {{customer_name:bare}}John Doe (no quotes)

    • {{created_at:formatted}}9/18/2025 2:30 PM (no quotes)

Body Examples

As shown in the examples below, you can construct a JSON string with embedded fields by using the :bare flavor. Without :bare the field values would be enclosed in double quotes, which would create invalid JSON.

Discord

{
  "content": "Customer {{customer_name:bare}} has placed an order for {{product:bare}}."
}

Slack

{
   "text": "Customer {{customer_name:bare}} has placed an order for {{product:bare}}."
}