458 lines
11 KiB
YAML
458 lines
11 KiB
YAML
version: 6.4.0
|
|
|
|
type: DeclarativeSource
|
|
|
|
description: >-
|
|
The Airbyte connector for [Flexmail](https://flexmail.be/) enables seamless
|
|
data integration from Flexmail, a comprehensive email marketing platform, into
|
|
various data warehouses and analytics tools. With this connector, users can
|
|
efficiently synchronize Flexmail data—such as campaign details, subscriber
|
|
information, and engagement metrics—allowing for unified insights and advanced
|
|
reporting across platforms. Perfect for businesses aiming to centralize their
|
|
marketing data for enhanced visibility and decision-making.
|
|
|
|
check:
|
|
type: CheckStream
|
|
stream_names:
|
|
- contacts
|
|
|
|
definitions:
|
|
streams:
|
|
contacts:
|
|
type: DeclarativeStream
|
|
name: contacts
|
|
primary_key:
|
|
- id
|
|
retriever:
|
|
type: SimpleRetriever
|
|
requester:
|
|
$ref: "#/definitions/base_requester"
|
|
path: /contacts
|
|
http_method: GET
|
|
record_selector:
|
|
type: RecordSelector
|
|
extractor:
|
|
type: DpathExtractor
|
|
field_path:
|
|
- _embedded
|
|
- item
|
|
paginator:
|
|
type: DefaultPaginator
|
|
page_token_option:
|
|
type: RequestOption
|
|
inject_into: request_parameter
|
|
field_name: offset
|
|
page_size_option:
|
|
type: RequestOption
|
|
field_name: limit
|
|
inject_into: request_parameter
|
|
pagination_strategy:
|
|
type: OffsetIncrement
|
|
page_size: 500
|
|
schema_loader:
|
|
type: InlineSchemaLoader
|
|
schema:
|
|
$ref: "#/schemas/contacts"
|
|
custom_fields:
|
|
type: DeclarativeStream
|
|
name: custom_fields
|
|
primary_key:
|
|
- id
|
|
retriever:
|
|
type: SimpleRetriever
|
|
requester:
|
|
$ref: "#/definitions/base_requester"
|
|
path: /custom-fields
|
|
http_method: GET
|
|
record_selector:
|
|
type: RecordSelector
|
|
extractor:
|
|
type: DpathExtractor
|
|
field_path:
|
|
- _embedded
|
|
- item
|
|
schema_loader:
|
|
type: InlineSchemaLoader
|
|
schema:
|
|
$ref: "#/schemas/custom_fields"
|
|
interests:
|
|
type: DeclarativeStream
|
|
name: interests
|
|
primary_key:
|
|
- id
|
|
retriever:
|
|
type: SimpleRetriever
|
|
requester:
|
|
$ref: "#/definitions/base_requester"
|
|
path: /interests
|
|
http_method: GET
|
|
record_selector:
|
|
type: RecordSelector
|
|
extractor:
|
|
type: DpathExtractor
|
|
field_path:
|
|
- _embedded
|
|
- item
|
|
schema_loader:
|
|
type: InlineSchemaLoader
|
|
schema:
|
|
$ref: "#/schemas/interests"
|
|
segments:
|
|
type: DeclarativeStream
|
|
name: segments
|
|
primary_key:
|
|
- id
|
|
retriever:
|
|
type: SimpleRetriever
|
|
requester:
|
|
$ref: "#/definitions/base_requester"
|
|
path: /segments
|
|
http_method: GET
|
|
record_selector:
|
|
type: RecordSelector
|
|
extractor:
|
|
type: DpathExtractor
|
|
field_path:
|
|
- _embedded
|
|
- item
|
|
schema_loader:
|
|
type: InlineSchemaLoader
|
|
schema:
|
|
$ref: "#/schemas/segments"
|
|
sources:
|
|
type: DeclarativeStream
|
|
name: sources
|
|
primary_key:
|
|
- id
|
|
retriever:
|
|
type: SimpleRetriever
|
|
requester:
|
|
$ref: "#/definitions/base_requester"
|
|
path: /sources
|
|
http_method: GET
|
|
record_selector:
|
|
type: RecordSelector
|
|
extractor:
|
|
type: DpathExtractor
|
|
field_path:
|
|
- _embedded
|
|
- item
|
|
paginator:
|
|
type: DefaultPaginator
|
|
page_token_option:
|
|
type: RequestOption
|
|
inject_into: request_parameter
|
|
field_name: offset
|
|
page_size_option:
|
|
type: RequestOption
|
|
field_name: limit
|
|
inject_into: request_parameter
|
|
pagination_strategy:
|
|
type: OffsetIncrement
|
|
page_size: 500
|
|
schema_loader:
|
|
type: InlineSchemaLoader
|
|
schema:
|
|
$ref: "#/schemas/sources"
|
|
webhook_events:
|
|
type: DeclarativeStream
|
|
name: webhook_events
|
|
retriever:
|
|
type: SimpleRetriever
|
|
requester:
|
|
$ref: "#/definitions/base_requester"
|
|
path: /webhook-events
|
|
http_method: GET
|
|
record_selector:
|
|
type: RecordSelector
|
|
extractor:
|
|
type: DpathExtractor
|
|
field_path: []
|
|
schema_loader:
|
|
type: InlineSchemaLoader
|
|
schema:
|
|
$ref: "#/schemas/webhook_events"
|
|
base_requester:
|
|
type: HttpRequester
|
|
url_base: https://api.flexmail.eu
|
|
authenticator:
|
|
type: BasicHttpAuthenticator
|
|
password: "{{ config[\"personal_access_token\"] }}"
|
|
username: "{{ config[\"account_id\"] }}"
|
|
|
|
streams:
|
|
- $ref: "#/definitions/streams/contacts"
|
|
- $ref: "#/definitions/streams/custom_fields"
|
|
- $ref: "#/definitions/streams/interests"
|
|
- $ref: "#/definitions/streams/segments"
|
|
- $ref: "#/definitions/streams/sources"
|
|
- $ref: "#/definitions/streams/webhook_events"
|
|
|
|
spec:
|
|
type: Spec
|
|
connection_specification:
|
|
type: object
|
|
$schema: http://json-schema.org/draft-07/schema#
|
|
required:
|
|
- account_id
|
|
- personal_access_token
|
|
properties:
|
|
account_id:
|
|
type: string
|
|
description: >-
|
|
Your Flexmail account ID. You can find it in your Flexmail account
|
|
settings.
|
|
name: account_id
|
|
order: 0
|
|
title: Account ID
|
|
personal_access_token:
|
|
type: string
|
|
description: >-
|
|
A personal access token for API authentication. Manage your tokens in
|
|
Flexmail under Settings > API > Personal access tokens.
|
|
name: personal_access_token
|
|
order: 1
|
|
title: Personal Access Token
|
|
airbyte_secret: true
|
|
additionalProperties: true
|
|
|
|
metadata:
|
|
autoImportSchema:
|
|
contacts: true
|
|
custom_fields: true
|
|
interests: true
|
|
segments: true
|
|
sources: true
|
|
webhook_events: true
|
|
testedStreams:
|
|
contacts:
|
|
streamHash: 9697aafc0c43eacbdf5543a0866bb1711eb7a99c
|
|
hasResponse: true
|
|
responsesAreSuccessful: true
|
|
hasRecords: true
|
|
primaryKeysArePresent: true
|
|
primaryKeysAreUnique: true
|
|
custom_fields:
|
|
streamHash: 8e9130174f724b68eac023f7754ad4d7750820f3
|
|
hasResponse: true
|
|
responsesAreSuccessful: true
|
|
hasRecords: true
|
|
primaryKeysArePresent: true
|
|
primaryKeysAreUnique: true
|
|
interests:
|
|
streamHash: c58d821de8774fffbfa15514e93452676449b542
|
|
hasResponse: true
|
|
responsesAreSuccessful: true
|
|
hasRecords: true
|
|
primaryKeysArePresent: true
|
|
primaryKeysAreUnique: true
|
|
segments:
|
|
streamHash: 22bb7e1a7abfacb36b8fa22c0c21175f098842a7
|
|
hasResponse: true
|
|
responsesAreSuccessful: true
|
|
hasRecords: true
|
|
primaryKeysArePresent: true
|
|
primaryKeysAreUnique: true
|
|
sources:
|
|
streamHash: 505704b58a5f5e7a6e532635df6dbb61e9f2b416
|
|
hasResponse: true
|
|
responsesAreSuccessful: true
|
|
hasRecords: true
|
|
primaryKeysArePresent: true
|
|
primaryKeysAreUnique: true
|
|
webhook_events:
|
|
streamHash: 5ff0384abc63be781b90d10dd38dc652f7037c4a
|
|
hasResponse: true
|
|
responsesAreSuccessful: true
|
|
hasRecords: true
|
|
primaryKeysArePresent: true
|
|
primaryKeysAreUnique: true
|
|
assist:
|
|
docsUrl: https://api.flexmail.eu/documentation
|
|
|
|
schemas:
|
|
contacts:
|
|
type: object
|
|
$schema: http://json-schema.org/schema#
|
|
additionalProperties: true
|
|
properties:
|
|
_links:
|
|
type:
|
|
- object
|
|
- "null"
|
|
properties:
|
|
self:
|
|
type:
|
|
- object
|
|
- "null"
|
|
properties:
|
|
href:
|
|
type:
|
|
- string
|
|
- "null"
|
|
sources:
|
|
type:
|
|
- object
|
|
- "null"
|
|
properties:
|
|
href:
|
|
type:
|
|
- string
|
|
- "null"
|
|
custom_fields:
|
|
type:
|
|
- object
|
|
- "null"
|
|
properties: {}
|
|
email:
|
|
type:
|
|
- string
|
|
- "null"
|
|
first_name:
|
|
type:
|
|
- string
|
|
- "null"
|
|
id:
|
|
type: number
|
|
language:
|
|
type:
|
|
- string
|
|
- "null"
|
|
name:
|
|
type:
|
|
- string
|
|
- "null"
|
|
required:
|
|
- id
|
|
custom_fields:
|
|
type: object
|
|
$schema: http://json-schema.org/schema#
|
|
additionalProperties: true
|
|
properties:
|
|
type:
|
|
type:
|
|
- string
|
|
- "null"
|
|
id:
|
|
type: string
|
|
name:
|
|
type:
|
|
- string
|
|
- "null"
|
|
placeholder:
|
|
type:
|
|
- string
|
|
- "null"
|
|
required:
|
|
- id
|
|
interests:
|
|
type: object
|
|
$schema: http://json-schema.org/schema#
|
|
additionalProperties: true
|
|
properties:
|
|
description:
|
|
type:
|
|
- string
|
|
- "null"
|
|
_links:
|
|
type:
|
|
- object
|
|
- "null"
|
|
properties:
|
|
self:
|
|
type:
|
|
- object
|
|
- "null"
|
|
properties:
|
|
href:
|
|
type:
|
|
- string
|
|
- "null"
|
|
id:
|
|
type: string
|
|
label:
|
|
type:
|
|
- string
|
|
- "null"
|
|
name:
|
|
type:
|
|
- string
|
|
- "null"
|
|
visibility:
|
|
type:
|
|
- string
|
|
- "null"
|
|
required:
|
|
- id
|
|
segments:
|
|
type: object
|
|
$schema: http://json-schema.org/schema#
|
|
additionalProperties: true
|
|
properties:
|
|
id:
|
|
type: string
|
|
name:
|
|
type:
|
|
- string
|
|
- "null"
|
|
number_of_contacts:
|
|
type:
|
|
- number
|
|
- "null"
|
|
required:
|
|
- id
|
|
sources:
|
|
type: object
|
|
$schema: http://json-schema.org/schema#
|
|
additionalProperties: true
|
|
properties:
|
|
_links:
|
|
type:
|
|
- object
|
|
- "null"
|
|
properties:
|
|
self:
|
|
type:
|
|
- object
|
|
- "null"
|
|
properties:
|
|
href:
|
|
type:
|
|
- string
|
|
- "null"
|
|
id:
|
|
type: number
|
|
name:
|
|
type:
|
|
- string
|
|
- "null"
|
|
required:
|
|
- id
|
|
webhook_events:
|
|
type: object
|
|
$schema: http://json-schema.org/schema#
|
|
additionalProperties: true
|
|
properties:
|
|
_links:
|
|
type:
|
|
- object
|
|
- "null"
|
|
properties:
|
|
self:
|
|
type:
|
|
- object
|
|
- "null"
|
|
properties:
|
|
href:
|
|
type:
|
|
- string
|
|
- "null"
|
|
events:
|
|
type:
|
|
- array
|
|
- "null"
|
|
items:
|
|
type:
|
|
- string
|
|
- "null"
|