Skip to content
Keboola Docs

Generic Writer Configuration Examples

This configuration sends the POST request to https://example.com/test/[[id]] where [[id]] is a column expected in the input table. It will send as many requests as there are rows in the input table. Each request object is wrapped in {"data":{}} object.

{
"api": {
"base_url": "https://example.com"
},
"user_parameters": {
"date": {
"function": "concat",
"args": [
{
"function": "string_to_date",
"args": [
"yesterday",
"%Y-%m-%d"
]
},
"T"
]
}
},
"request_parameters": {
"method": "POST",
"endpoint_path": "/test/[[id]]?",
"headers": {
"Authorization": {
"attr": "token_encoded"
},
"Content-Type": "application/json"
},
"query_parameters": {
"date": {
"attr": "date"
}
}
},
"request_content": {
"content_type": "JSON",
"json_mapping": {
"nesting_delimiter": "_",
"chunk_size": 1,
"column_data_types": {
"autodetect": true
},
"request_data_wrapper": "{ \"data\": [[data]]}",
"column_names_override": {}
},
"iterate_by_columns": [
"id"
]
}
}

Write customer events into the Exponea API in batches of 3 requests.

Writer config:

{
"debug": false,
"api": {
"base_url": "https://api-demoapp.exponea.com"
},
"user_parameters": {
"#token": "12345",
"token_encoded": {
"function": "concat",
"args": [
"Basic ",
{
"function": "base64_encode",
"args": [
{
"attr": "#token"
}
]
}
]
}
},
"request_parameters": {
"method": "POST",
"endpoint_path": "/track/v2/projects/1234566/batch?",
"headers": {
"Authorization": {
"attr": "token_encoded"
},
"Content-type": "application/csv"
}
},
"request_content": {
"content_type": "JSON",
"json_mapping": {
"nesting_delimiter": "__",
"chunk_size": 3,
"column_data_types": {
"autodetect": true
},
"request_data_wrapper": "{\"commands\":{{data}}}"
}
}
}

Input table:

namedata__customer_ids__registereddata__properties__pricedata__timestampdata__event_typedata__properties__test
customers/eventsmilan@test.com150123456.78testing_eventa
customers/eventspetr@test.com150123456.78testing_eventa
customers/eventsmasha@test.com150123456.78testing_eventa

Result request:

{
"commands": [{
"name": "customers/events",
"data": {
"customer_ids": {
"registered": "milan@keboola.com"
},
"properties": {
"price": 150,
"test": "a"
},
"timestamp": 123456.78,
"event_type": "testing_event"
}
}, {
"name": "customers/events",
"data": {
"customer_ids": {
"registered": "petr@keboola.com"
},
"properties": {
"price": 150,
"test": "a"
},
"timestamp": 123456.78,
"event_type": "testing_event"
}
}, {
"name": "customers/events",
"data": {
"customer_ids": {
"registered": "masha.reutovski@keboola.com"
},
"properties": {
"price": 150,
"test": "a"
},
"timestamp": 123456.78,
"event_type": "testing_event"
}
}
]
}

Update user events via the Customer.io API based on the user_id column.

The API uses Basic http authentication.

Writer config:

{
"api": {
"base_url": "https://track.customer.io",
"authentication": {
"type": "BasicHttp",
"parameters": {
"username": "test_user",
"#password": "pass"
}
}
},
"request_parameters": {
"method": "POST",
"endpoint_path": "/api/v1/customers/{{user_id}}/events?",
"headers": {
"Authorization": {
"attr": "token_encoded"
},
"Content-type": "application/csv"
}
},
"request_content": {
"content_type": "JSON",
"json_mapping": {
"nesting_delimiter": "_",
"chunk_size": 1,
"column_data_types": {
"autodetect": true
},
"request_data_wrapper": "",
"column_names_override": {}
},
"iterate_by_columns": [
"user_id"
]
}
}

Input Table:

user_iddata_pricedata_datename
a@test.com1501.1.20testing_event
petr@test.com1501.1.20testing_event
masha@test.com1501.1.20testing_event

Json request:

For each row in the input one request:

POST https://track.customer.io/api/v1/customers/a@test.com/events

{"data": {"price": 150, "date": "1.1.20"}, "name": "testing_event"}

Send notifications to Slack channels via an API. Note that you need to create an app with appropriate permissions at https://api.slack.com/apps and retrieve the API token.

Input Table:

channeltext
AC098098Hello
AC092131World

Configuration:

{
"debug": true,
"api": {
"base_url": "https://slack.com"
},
"user_parameters": {
"#token": "",
"token_encoded": {
"function": "concat",
"args": [
"Bearer ",
{
"attr": "#token"
}
]
}
},
"request_parameters": {
"method": "POST",
"endpoint_path": "/api/chat.postMessage?",
"headers": {
"Authorization": {
"attr": "token_encoded"
},
"Content-type": "application/json"
}
},
"request_content": {
"content_type": "JSON",
"json_mapping": {
"nesting_delimiter": "_",
"chunk_size": 1,
"column_data_types": {
"autodetect": true
},
"request_data_wrapper": ""
}
}
}
Ask Kai

Ask anything about Keboola — I'll search the docs and cite the pages I use.