Ingest JSON events via HTTP.
Create a Webhook endpoint to ingest JSON events to Propel.
Step-by-step instructions to ingest events via Webhooks to Propel.
Webhook Data Pools provide an HTTP URL to send events from your applications, streaming infrastructure, or SaaS applications to ingest into Propel.
Webhook Data Pools supports the following features:
Feature name | Supported | Notes |
---|---|---|
Event collection | ✅ | Collects events in JSON format. |
Real-time updates | ✅ | See the Real-time updates section. |
Real-time deletes | ✅ | See the Real-time deletes section. |
Batch Delete API | ✅ | See Batch Delete API. |
Batch Update API | ✅ | See Batch Update API. |
Bulk insert | ✅ | Up to 500 events per HTTP request. |
API configurable | ✅ | See API docs. |
Terraform configurable | ✅ | See Terraform docs. |
Creating a Webhook Data Pool provides you with an HTTP URL for posting JSON events.
The posted events are collected in the Data Pool and can be accessed using SQL or the Query APIs.
By default, the Webhook Data Pool has two columns:
Column | Type | Description |
---|---|---|
_propel_received_at | TIMESTAMP | The timestamp when the event was collected in UTC. |
_propel_payload | JSON | The JSON Payload of the event. |
When creating a Webhook Data Pool, you can flatten top-level or nested JSON keys into specific columns.
See our step-by-step setup guide.
You can add basic authentication to your HTTP endpoint to secure your URL. If these parameters are not provided, anyone with the URL to your webhook will be able to post events.
Send individual events by POSTing the JSON event in the request body.
Send a batch of JSON events by POSTing a JSON array of events in the request body. Each request can have a maximum of 500 events in the array.
Use the disable_partial_success=true
query parameter to make sure that if any event in a batch fails validation, the entire request will fail.
For example: https://webhooks.us-east-2.propeldata.com/v1/WHK00000000000000000000000000?disable_partial_success=true
The Webhook Data Pool is designed to handle semi-structured, schema-less JSON data. This flexibility allows you to add new properties to your payload as needed. The entire payload is always stored in the _propel_payload
column.
However, Propel enforces the schema for required fields. If you stop providing data for a required field that was previously unpacked into its own column, Propel will return an error.
Go to the Schema tab
Go to the Data Pool and click the “Schema” tab.
Click the “Add Column” button to define the new column.
Add column
Specify the JSON property to extract, the column name, and the type and click “Add column”.
Track progress
After clicking adding the column, an asynchronous operation will begin to add the column to the Data Pool. You can track the progress in the “Operations” tab.
Note that adding a column does not backfill existing rows. To backfill, run a batch update operation.
Column deletions, modifications, and data type changes are not supported as they are breaking changes to the schema. If you need to change the schema, you can create a new Data Pool.
The table below shows the default mappings from JSON types to Propel types. You can change these mappings when creating a Webhook Data Pool.
JSON Type | Propel Type |
---|---|
String | STRING |
Number | DOUBLE |
Object | JSON |
Array | JSON |
Boolean | BOOLEAN |
Null | JSON |
_propel_received_at
will be used by default.Once your data is in a Webhook Data Pool, you can use Materialized Views to:
How long does it take for an event to be available via SQL or the API?
Once an event is collected, the data will be available in Propel and accessible via SQL or the API within 10 seconds to 2 minutes.
Ingest JSON events via HTTP.
Create a Webhook endpoint to ingest JSON events to Propel.
Step-by-step instructions to ingest events via Webhooks to Propel.
Webhook Data Pools provide an HTTP URL to send events from your applications, streaming infrastructure, or SaaS applications to ingest into Propel.
Webhook Data Pools supports the following features:
Feature name | Supported | Notes |
---|---|---|
Event collection | ✅ | Collects events in JSON format. |
Real-time updates | ✅ | See the Real-time updates section. |
Real-time deletes | ✅ | See the Real-time deletes section. |
Batch Delete API | ✅ | See Batch Delete API. |
Batch Update API | ✅ | See Batch Update API. |
Bulk insert | ✅ | Up to 500 events per HTTP request. |
API configurable | ✅ | See API docs. |
Terraform configurable | ✅ | See Terraform docs. |
Creating a Webhook Data Pool provides you with an HTTP URL for posting JSON events.
The posted events are collected in the Data Pool and can be accessed using SQL or the Query APIs.
By default, the Webhook Data Pool has two columns:
Column | Type | Description |
---|---|---|
_propel_received_at | TIMESTAMP | The timestamp when the event was collected in UTC. |
_propel_payload | JSON | The JSON Payload of the event. |
When creating a Webhook Data Pool, you can flatten top-level or nested JSON keys into specific columns.
See our step-by-step setup guide.
You can add basic authentication to your HTTP endpoint to secure your URL. If these parameters are not provided, anyone with the URL to your webhook will be able to post events.
Send individual events by POSTing the JSON event in the request body.
Send a batch of JSON events by POSTing a JSON array of events in the request body. Each request can have a maximum of 500 events in the array.
Use the disable_partial_success=true
query parameter to make sure that if any event in a batch fails validation, the entire request will fail.
For example: https://webhooks.us-east-2.propeldata.com/v1/WHK00000000000000000000000000?disable_partial_success=true
The Webhook Data Pool is designed to handle semi-structured, schema-less JSON data. This flexibility allows you to add new properties to your payload as needed. The entire payload is always stored in the _propel_payload
column.
However, Propel enforces the schema for required fields. If you stop providing data for a required field that was previously unpacked into its own column, Propel will return an error.
Go to the Schema tab
Go to the Data Pool and click the “Schema” tab.
Click the “Add Column” button to define the new column.
Add column
Specify the JSON property to extract, the column name, and the type and click “Add column”.
Track progress
After clicking adding the column, an asynchronous operation will begin to add the column to the Data Pool. You can track the progress in the “Operations” tab.
Note that adding a column does not backfill existing rows. To backfill, run a batch update operation.
Column deletions, modifications, and data type changes are not supported as they are breaking changes to the schema. If you need to change the schema, you can create a new Data Pool.
The table below shows the default mappings from JSON types to Propel types. You can change these mappings when creating a Webhook Data Pool.
JSON Type | Propel Type |
---|---|
String | STRING |
Number | DOUBLE |
Object | JSON |
Array | JSON |
Boolean | BOOLEAN |
Null | JSON |
_propel_received_at
will be used by default.Once your data is in a Webhook Data Pool, you can use Materialized Views to:
How long does it take for an event to be available via SQL or the API?
Once an event is collected, the data will be available in Propel and accessible via SQL or the API within 10 seconds to 2 minutes.