Add extractor tap-asyntai-chatbot (asyntai) - #2322
Merged
Merged
Conversation
Asyntai is an AI chatbot for websites. The tap loads four streams, all joined by session_id: sessions, messages, leads and tickets. Repo: https://github.com/asyntai/tap-asyntai-chatbot PyPI: https://pypi.org/project/tap-asyntai-chatbot/
✅ Deploy Preview for meltano-hub ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
|
Testing plugin
Auto-generated README.md
|
| Setting | Required | Default | Description |
|---|---|---|---|
| api_key | True | None | Asyntai API key, from Settings then API in the dashboard. |
| api_url | False | https://asyntai.com | Base address of the Asyntai API. |
| start_date | False | None | Earliest record to read on the first run. |
| website_id | False | None | Read one website only. Leave empty for every website. |
| page_size | False | 100 | Rows per request. The API allows 100 at most. |
| stream_maps | False | None | Config object for stream maps capability. For more information check out Stream Maps. |
| stream_maps.else | False | None | Currently, only setting this to __NULL__ is supported. This will remove all other streams. |
| stream_map_config | False | None | User-defined config values to be used within map expressions. |
| faker_config | False | None | Config for the Faker instance variable fake used within map expressions. Only applicable if the plugin specifies faker as an additional dependency (through the singer-sdk faker extra or directly). |
| faker_config.seed | False | None | Value to seed the Faker generator for deterministic output: https://faker.readthedocs.io/en/master/#seeding-the-generator |
| faker_config.locale | False | None | One or more LCID locale strings to produce localized output for: https://faker.readthedocs.io/en/master/#localization |
| flattening_enabled | False | None | 'True' to enable schema flattening and automatically expand nested properties. |
| flattening_max_depth | False | None | The max depth to flatten schemas. |
| flattening_max_key_length | False | None | The maximum length of a flattened key. |
| flattening_separator | False | None | The separator to use when flattening keys. |
| batch_config | False | None | Configuration for BATCH message capabilities. |
| batch_config.encoding | False | None | Specifies the format and compression of the batch files. |
| batch_config.encoding.format | False | None | Format to use for batch files. |
| batch_config.encoding.compression | False | None | Compression format to use for batch files. |
| batch_config.storage | False | None | Defines the storage layer to use when writing batch files |
| batch_config.storage.root | False | None | Root path to use when writing batch files. |
| batch_config.storage.prefix | False | None | Prefix to use when writing batch files. |
A full list of supported settings and capabilities is available by running: tap-asyntai-chatbot --about
Version info
tap-asyntai-chatbot v1.0.0, Meltano SDK v0.54.6
Usage info
melty-bot % meltano invoke tap-asyntai-chatbot --help
Usage: tap-asyntai-chatbot [OPTIONS]
Execute the Singer tap.
Options:
--version Display the package version.
--about Display package metadata and settings.
--format [json|markdown] Specify output style for --about
--config TEXT Configuration file location or 'ENV' to use
environment variables.
--discover Run the tap in discovery mode.
--test TEXT Use --test to sync a single record for each
stream. Use --test=schema to test schema output
without syncing records.
--catalog FILENAME Use a Singer catalog file with the tap.
--state FILENAME Use a bookmarks file for incremental replication.
--help Show this message and exit.
Detected capabilities
- ✅ 'discover'
- ✅ 'catalog'
- ✅ 'state'
- ✅ 'about'
JSON Metadata
{
"name": "tap-asyntai-chatbot",
"description": "Load chats, leads and tickets out of Asyntai.",
"version": "1.0.0",
"sdk_version": "0.54.6",
"supported_python_versions": [
"3.10",
"3.11",
"3.12",
"3.13"
],
"capabilities": [
"catalog",
"state",
"discover",
"activate-version",
"about",
"stream-maps",
"schema-flattening",
"batch",
"structured-logging"
],
"settings": {
"type": "object",
"properties": {
"api_key": {
"type": [
"string"
],
"title": "API key",
"description": "Asyntai API key, from Settings then API in the dashboard.",
"secret": true,
"writeOnly": true
},
"api_url": {
"type": [
"string",
"null"
],
"title": "API URL",
"default": "https://asyntai.com",
"description": "Base address of the Asyntai API."
},
"start_date": {
"type": [
"string",
"null"
],
"format": "date-time",
"title": "Start date",
"description": "Earliest record to read on the first run."
},
"website_id": {
"type": [
"string",
"null"
],
"title": "Website id",
"description": "Read one website only. Leave empty for every website."
},
"page_size": {
"type": [
"integer",
"null"
],
"title": "Page size",
"default": 100,
"description": "Rows per request. The API allows 100 at most."
},
"stream_maps": {
"type": [
"object",
"null"
],
"properties": {
"__else__": {
"anyOf": [
{
"const": "__NULL__"
},
{
"type": "null"
},
"null"
],
"title": "Other streams",
"description": "Currently, only setting this to `__NULL__` is supported. This will remove all other streams."
}
},
"additionalProperties": {
"anyOf": [
{
"const": "__NULL__"
},
{
"type": "null"
},
{
"type": "object",
"properties": {
"__alias__": {
"type": [
"string",
"null"
],
"title": "Stream Alias",
"description": "Alias to use for the stream."
},
"__else__": {
"anyOf": [
{
"const": "__NULL__"
},
{
"type": "null"
},
"null"
],
"title": "Other properties",
"description": "Currently, only setting this to `__NULL__` is supported. This will remove all other properties from the stream."
},
"__filter__": {
"type": [
"string",
"null"
],
"title": "Filter",
"description": "Filter out records from a stream. A string expression which must evaluate to `true` to include the record, or `false` to exclude it. Filter expressions should be wrapped in `bool()` to ensure proper type conversion."
},
"__key_properties__": {
"type": [
"array",
"null"
],
"items": {
"type": [
"string"
]
},
"title": "Key Properties",
"description": "Primary key properties for the stream."
},
"__source__": {
"type": [
"string",
"null"
],
"description": "Create a new stream from this source stream."
}
},
"additionalProperties": {
"anyOf": [
{
"const": "__NULL__"
},
{
"type": "null"
},
{
"type": [
"string"
]
}
]
}
}
]
},
"title": "Stream Maps",
"description": "Config object for stream maps capability. For more information check out [Stream Maps](https://sdk.meltano.com/en/latest/stream_maps.html)."
},
"stream_map_config": {
"type": [
"object",
"null"
],
"properties": {},
"additionalProperties": true,
"title": "User Stream Map Configuration",
"description": "User-defined config values to be used within map expressions."
},
"faker_config": {
"type": [
"object",
"null"
],
"properties": {
"seed": {
"oneOf": [
{
"type": [
"number"
]
},
{
"type": [
"string"
]
},
{
"type": [
"boolean"
]
},
{
"type": "null"
}
],
"title": "Faker Seed",
"description": "Value to seed the Faker generator for deterministic output: https://faker.readthedocs.io/en/master/#seeding-the-generator"
},
"locale": {
"oneOf": [
{
"type": [
"string"
]
},
{
"type": "array",
"items": {
"type": [
"string"
]
}
},
{
"type": "null"
}
],
"title": "Faker Locale",
"description": "One or more LCID locale strings to produce localized output for: https://faker.readthedocs.io/en/master/#localization"
}
},
"additionalProperties": true,
"title": "Faker Configuration",
"description": "Config for the [`Faker`](https://faker.readthedocs.io/en/master/) instance variable `fake` used within map expressions. Only applicable if the plugin specifies `faker` as an additional dependency (through the `singer-sdk` `faker` extra or directly)."
},
"flattening_enabled": {
"type": [
"boolean",
"null"
],
"title": "Enable Schema Flattening",
"description": "'True' to enable schema flattening and automatically expand nested properties."
},
"flattening_max_depth": {
"type": [
"integer",
"null"
],
"title": "Max Flattening Depth",
"description": "The max depth to flatten schemas."
},
"flattening_max_key_length": {
"type": [
"integer",
"null"
],
"title": "Max Key Length",
"description": "The maximum length of a flattened key."
},
"flattening_separator": {
"type": [
"string",
"null"
],
"title": "Flattening Separator",
"description": "The separator to use when flattening keys."
},
"batch_config": {
"type": [
"object",
"null"
],
"properties": {
"encoding": {
"type": [
"object",
"null"
],
"properties": {
"format": {
"type": [
"string",
"null"
],
"title": "Batch Encoding Format",
"description": "Format to use for batch files.",
"enum": [
"jsonl",
"parquet"
]
},
"compression": {
"type": [
"string",
"null"
],
"title": "Batch Compression Format",
"description": "Compression format to use for batch files.",
"enum": [
"gzip",
"none"
]
}
},
"additionalProperties": true,
"title": "Batch Encoding Configuration",
"description": "Specifies the format and compression of the batch files."
},
"storage": {
"type": [
"object",
"null"
],
"properties": {
"root": {
"type": [
"string",
"null"
],
"title": "Batch Storage Root",
"description": "Root path to use when writing batch files."
},
"prefix": {
"type": [
"string",
"null"
],
"title": "Batch Storage Prefix",
"description": "Prefix to use when writing batch files."
}
},
"additionalProperties": true,
"title": "Batch Storage Configuration",
"description": "Defines the storage layer to use when writing batch files"
}
},
"additionalProperties": true,
"title": "Batch Configuration",
"description": "Configuration for BATCH message capabilities."
}
},
"required": [
"api_key"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}
}Discovered streams
leadsmessagessessionstickets
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds the extractor tap-asyntai-chatbot (variant
asyntai).Asyntai is an AI chatbot for websites. It answers visitor questions, captures leads and raises support tickets. This tap loads that data into a warehouse.
Four streams, all joined by
session_id:sessionslast_message_atmessagessessionsleadsstarted_atticketscreated_atThe definition was generated with
hub-utils add. On Windows it could not run the plugin to scrape the settings, so the settings and capabilities were filled from the tap own--about --format=json.plugin_schema_validate.py,yaml_check_names.pyandmaintainers_validate.pyall pass locally.