External Data Sources
Connect external data sources so your forms and events can pull in data from other systems. For example, connect an employee directory from your HR system -- then use it as a dropdown in your forms so customers can select a contact person.
This area depends on your plan. If not available, the section is visible but locked.
How it works
You configure an API endpoint, Eventyflow fetches the data, and it becomes available as field options in the Form Builder. Your forms always show up-to-date data from the external system.
What you can do
- Create and edit data sources.
- Set up usage purpose, HTTP method, timeout, and login method.
- Block or unblock a source.
- See which forms are using a source.
Login methods
Pick how the external system verifies your connection:
- None -- open endpoints without authentication.
- Basic Auth -- classic login credentials.
- Bearer Token -- a single access token.
- API Key -- a key provided by the external service.
Saved passwords and tokens are hidden when you edit later. After saving, the system automatically tests the connection.
Deleting a source
If a source is currently used by forms, you get a warning before deleting. The warning shows which forms are affected so you can avoid breaking anything.
Status and monitoring
You can track:
- Current status (approved, blocked, or pending).
- How many requests succeeded or failed.
- Overall success rate.
- When the last check ran.
Good to know
If you add custom headers beyond the standard login fields, make sure they match what the external system expects before using the source in live automations.
Configuration tabs
When you edit a data source, the configuration is split into three tabs:
- Request -- URL, connection settings, authentication, and request parameters.
- Response -- data mapping for transforming the API response.
- Booking -- booking configuration (only for room availability sources).
Request parameters
Define parameters that are sent with each API request. Parameters can be static values or dynamic values from form fields.
For room availability sources, the following context values are automatically available as parameter sources:
- Event Date -- the date selected by the customer.
- Start Time -- the start time selected by the customer.
- End Time -- the end time selected by the customer.
- Attendees -- the number of attendees entered by the customer.
Each parameter can have a format applied (e.g., date format conversion).
Multi-date queries
When date alternatives are enabled (see below), you can configure how multiple dates are sent to the external API:
| Mode | Description | Example |
|---|---|---|
| Separator | Dates joined with a separator character | date=01.08;02.08 |
| Date Range | Separate from/to parameters | from=01.08&to=05.08 |
| JSON Array | Dates as a JSON array in the request body | ["01.08", "02.08"] |
| Repeated parameter | Same parameter repeated for each date | date=01.08&date=02.08 |
Data mapping
When a third-party system uses a different data format than Eventyflow expects, you can set up mapping rules to transform the data automatically.
Visual mapping editor
For room availability sources, a visual mapping editor lets you map API fields to Eventyflow fields by clicking -- no manual path entry required. The editor discovers available fields from a sample JSON response and shows them alongside Eventyflow's semantic slots.
Semantic slots are the target fields Eventyflow needs for room availability:
| Slot | Description |
|---|---|
| Room ID | Which field identifies the room. |
| Dates | Which field contains the dates (expected format: YYYY-MM-DD). |
| Time From | Start time of the booking slot (optional, expected format: HH:mm). |
| Time To | End time of the booking slot (optional, expected format: HH:mm). |
Click a field in the API response column, then click the matching semantic slot to create a mapping. The editor automatically detects date and time formats from sample values and suggests the correct transformer.
Sample JSON
To discover the available fields from the external system, you can:
- Paste a sample JSON response into the text area.
- Fetch from API -- click the button to make a real test request and load the response automatically.
The discovered fields are listed with their data types and example values.
Inbound mapping (response)
Transform data coming back from the external system into the format Eventyflow needs. For example, if the external system returns dates as "25.12.2026", you can convert them to the standard format "2026-12-25".
- Open the Response tab.
- Turn on Map API response to Eventyflow format.
- Add mapping rules. Each rule has:
- Source (API response) -- where to find the value in the external response.
- Transformers -- optional conversions like date format, value mapping, or type casting.
- Target (Eventyflow) -- where to place the value in Eventyflow format.
Outbound mapping (request)
Transform the data Eventyflow sends to the external system. Use this when the external API expects a specific request format.
- Open the Request tab.
- Turn on Enable outbound request mapping.
- Add mapping rules to define how Eventyflow data maps to the external system's expected format.
Available transformers
| Transformer | What it does | Example |
|---|---|---|
| Date Format | Converts between date formats | "25.12.2026" to "2026-12-25" |
| Boolean Coerce | Converts text to on/off values | "yes" to on, "no" to off |
| Map Values | Replaces values using a lookup table | "frei" to "available" |
| Type Cast | Changes the data type | Text "42" to number 42 |
| Default Value | Fills in a fallback when data is missing | Empty to "ZRH1" |
| To Array | Wraps a single item in a list | "item" to ["item"] |
| Concat | Adds text before or after a value | "123" to "ROOM-123" |
| Template | Builds text from multiple values | "Room 3, 2nd Floor" |
| Split Text | Splits a text value at a separator into a list | "A;B;C" to ["A", "B", "C"] |
Live preview
After saving a data source with mapping rules, you can test the mapping without making real API calls. Open the Live Preview section, paste sample JSON from the external system, and see the transformed result instantly.
Import and export
You can export a mapping configuration as a JSON file and import it into another data source. This lets you share configurations between sources or tenants.
Booking (room availability only)
For room availability sources, you can configure Eventyflow to send a booking request to the external system when a form is submitted. The booking happens before the submission is saved -- if the booking fails, the submission is not created.
- Open the Booking tab (only visible for room availability sources).
- Turn on Send booking on form submission.
- Enter the Booking URL (must be HTTPS).
- Set the HTTP method and timeout.
- Add request mapping rules to format the booking data.
- Define a success condition to check if the booking was accepted (e.g., field "status" equals "confirmed").
- Add response mapping to extract the booking reference from the response.
Success condition operators
| Operator | Description |
|---|---|
| equals | Value matches exactly. |
| not equals | Value does not match. |
| is one of | Value is in a list. |
| is none of | Value is not in a list. |
| contains | Value contains the text. |
| does not contain | Value does not contain the text. |
| exists | Field exists in the response. |
Date alternatives
For room availability sources, you can enable date alternatives so that Eventyflow queries nearby dates when the customer's chosen date has no available rooms. This helps customers find the next available slot without manually trying different dates.
Date alternative settings are configured per data source and depend on the multi-date query mode (see Request parameters above).