1
0
mirror of synced 2025-12-20 18:39:31 -05:00
Files
airbyte/airbyte-integrations/connectors/source-sendpulse/manifest.yaml
2024-11-08 16:44:43 +02:00

741 lines
17 KiB
YAML

version: 6.4.0
type: DeclarativeSource
description: >-
Airbyte connector for [SendPulse](https://sendpulse.com/) allows you to
seamlessly sync data from SendPulse to your data warehouse. It retrieves
essential information from various SendPulse streams, including mailing lists,
campaigns, templates, senders, webhooks, balance details, and balance. This
enables you to analyze and manage your SendPulse email marketing and
communication efforts effectively in a centralized location.
check:
type: CheckStream
stream_names:
- mailing_lists
definitions:
streams:
mailing_lists:
type: DeclarativeStream
name: mailing_lists
primary_key:
- id
retriever:
type: SimpleRetriever
requester:
$ref: "#/definitions/base_requester"
path: /addressbooks
http_method: GET
record_selector:
type: RecordSelector
extractor:
type: DpathExtractor
field_path: []
paginator:
type: DefaultPaginator
page_token_option:
type: RequestOption
inject_into: request_parameter
field_name: offset
page_size_option:
type: RequestOption
inject_into: request_parameter
field_name: limit
pagination_strategy:
type: OffsetIncrement
page_size: 100
schema_loader:
type: InlineSchemaLoader
schema:
$ref: "#/schemas/mailing_lists"
campaigns:
type: DeclarativeStream
name: campaigns
primary_key:
- id
retriever:
type: SimpleRetriever
requester:
$ref: "#/definitions/base_requester"
path: /campaigns
http_method: GET
record_selector:
type: RecordSelector
extractor:
type: DpathExtractor
field_path: []
paginator:
type: DefaultPaginator
page_token_option:
type: RequestOption
inject_into: request_parameter
field_name: offset
page_size_option:
type: RequestOption
inject_into: request_parameter
field_name: limit
pagination_strategy:
type: OffsetIncrement
page_size: 100
schema_loader:
type: InlineSchemaLoader
schema:
$ref: "#/schemas/campaigns"
templates:
type: DeclarativeStream
name: templates
primary_key:
- id
retriever:
type: SimpleRetriever
requester:
$ref: "#/definitions/base_requester"
path: /templates
http_method: GET
record_selector:
type: RecordSelector
extractor:
type: DpathExtractor
field_path: []
schema_loader:
type: InlineSchemaLoader
schema:
$ref: "#/schemas/templates"
senders:
type: DeclarativeStream
name: senders
primary_key:
- email
retriever:
type: SimpleRetriever
requester:
$ref: "#/definitions/base_requester"
path: /senders
http_method: GET
record_selector:
type: RecordSelector
extractor:
type: DpathExtractor
field_path: []
schema_loader:
type: InlineSchemaLoader
schema:
$ref: "#/schemas/senders"
webhooks:
type: DeclarativeStream
name: webhooks
primary_key:
- id
retriever:
type: SimpleRetriever
requester:
$ref: "#/definitions/base_requester"
path: /v2/email-service/webhook
http_method: GET
record_selector:
type: RecordSelector
extractor:
type: DpathExtractor
field_path:
- data
schema_loader:
type: InlineSchemaLoader
schema:
$ref: "#/schemas/webhooks"
balance_details:
type: DeclarativeStream
name: balance_details
retriever:
type: SimpleRetriever
requester:
$ref: "#/definitions/base_requester"
path: /user/balance/detail
http_method: GET
record_selector:
type: RecordSelector
extractor:
type: DpathExtractor
field_path: []
schema_loader:
type: InlineSchemaLoader
schema:
$ref: "#/schemas/balance_details"
balance:
type: DeclarativeStream
name: balance
primary_key:
- currency
retriever:
type: SimpleRetriever
requester:
$ref: "#/definitions/base_requester"
path: /balance
http_method: GET
record_selector:
type: RecordSelector
extractor:
type: DpathExtractor
field_path: []
transformations:
- type: AddFields
fields:
- path:
- datetime
value: "{{ now_utc() }}"
schema_loader:
type: InlineSchemaLoader
schema:
$ref: "#/schemas/balance"
base_requester:
type: HttpRequester
url_base: https://api.sendpulse.com
authenticator:
type: OAuthAuthenticator
client_id: "{{ config[\"client_id\"] }}"
grant_type: client_credentials
client_secret: "{{ config[\"client_secret\"] }}"
expires_in_name: expires_in
access_token_name: access_token
refresh_request_body: {}
token_refresh_endpoint: https://api.sendpulse.com/oauth/access_token
streams:
- $ref: "#/definitions/streams/mailing_lists"
- $ref: "#/definitions/streams/campaigns"
- $ref: "#/definitions/streams/templates"
- $ref: "#/definitions/streams/senders"
- $ref: "#/definitions/streams/webhooks"
- $ref: "#/definitions/streams/balance_details"
- $ref: "#/definitions/streams/balance"
spec:
type: Spec
connection_specification:
type: object
$schema: http://json-schema.org/draft-07/schema#
required:
- client_id
- client_secret
properties:
client_id:
type: string
name: client_id
order: 0
title: OAuth Client ID
airbyte_secret: true
client_secret:
type: string
name: client_secret
order: 1
title: OAuth Client Secret
airbyte_secret: true
additionalProperties: true
metadata:
autoImportSchema:
mailing_lists: true
campaigns: true
templates: true
senders: true
webhooks: true
balance_details: true
balance: true
testedStreams:
mailing_lists:
streamHash: 94deb8cdf6a5627bf44c8fe39cf3e0aa183184a3
hasResponse: true
responsesAreSuccessful: true
hasRecords: true
primaryKeysArePresent: true
primaryKeysAreUnique: true
campaigns:
streamHash: 3ca300e8a792ec17b4154bca202122028bfbb672
hasResponse: true
responsesAreSuccessful: true
hasRecords: true
primaryKeysArePresent: true
primaryKeysAreUnique: true
templates:
streamHash: 248f143b8ac05c88695bfda1fbb78aa332dc78e1
hasResponse: true
responsesAreSuccessful: true
hasRecords: true
primaryKeysArePresent: true
primaryKeysAreUnique: true
senders:
streamHash: 9fa00e085af9f89d6fa8fea75cd2f7c99b7c36ff
hasResponse: true
responsesAreSuccessful: true
hasRecords: true
primaryKeysArePresent: true
primaryKeysAreUnique: true
webhooks:
streamHash: 1bf46a2ea368a7057b227be76df1b0cf37411cfa
hasResponse: true
responsesAreSuccessful: true
hasRecords: true
primaryKeysArePresent: true
primaryKeysAreUnique: true
balance_details:
streamHash: c09fa8c41b04a121d5bb71a49da8ed1a0332de50
hasResponse: true
responsesAreSuccessful: true
hasRecords: true
primaryKeysArePresent: true
primaryKeysAreUnique: true
balance:
streamHash: ad1a47782c97f7dc55182808d5a147cfb4f87bf0
hasResponse: true
responsesAreSuccessful: true
hasRecords: true
primaryKeysArePresent: true
primaryKeysAreUnique: true
assist:
docsUrl: https://sendpulse.com/tr/integrations/api
schemas:
mailing_lists:
type: object
$schema: http://json-schema.org/schema#
additionalProperties: true
properties:
active_email_qty:
type:
- number
- "null"
active_phones_quantity:
type:
- number
- "null"
all_email_qty:
type:
- number
- "null"
creationdate:
type:
- string
- "null"
exc_phones_quantity:
type:
- number
- "null"
id:
type: number
inactive_email_qty:
type:
- number
- "null"
name:
type:
- string
- "null"
new_phones_quantity:
type:
- number
- "null"
status:
type:
- number
- "null"
status_explain:
type:
- string
- "null"
required:
- id
campaigns:
type: object
$schema: http://json-schema.org/schema#
additionalProperties: true
properties:
all_email_qty:
type:
- number
- "null"
company_price:
type:
- string
- "null"
id:
type: number
is_sms:
type:
- boolean
- "null"
is_viber:
type:
- boolean
- "null"
message:
type:
- object
- "null"
properties:
attachments:
type:
- string
- "null"
list_id:
type:
- number
- "null"
sender_email:
type:
- string
- "null"
sender_name:
type:
- string
- "null"
subject:
type:
- string
- "null"
name:
type:
- string
- "null"
overdraft_currency:
type:
- string
- "null"
overdraft_price:
type:
- number
- "null"
paid_email_qty:
type:
- number
- "null"
send_date:
type:
- string
- "null"
statistics:
type:
- object
- "null"
properties:
delivered:
type:
- number
- "null"
error:
type:
- number
- "null"
link_redirected:
type:
- number
- "null"
opening:
type:
- number
- "null"
sent:
type:
- number
- "null"
unsubscribe:
type:
- number
- "null"
status:
type:
- number
- "null"
tariff_email_qty:
type:
- number
- "null"
required:
- id
templates:
type: object
$schema: http://json-schema.org/schema#
additionalProperties: true
properties:
category:
type:
- string
- "null"
category_info:
anyOf:
- type: array
- type: object
properties:
code:
type: string
full_description:
type: string
id:
type: number
meta_description:
type: string
name:
type: string
sort:
type: number
created:
type:
- string
- "null"
full_description:
type:
- string
- "null"
id:
type: string
is_structure:
type:
- boolean
- "null"
lang:
type:
- string
- "null"
name:
type:
- string
- "null"
name_slug:
type:
- string
- "null"
owner:
type:
- string
- "null"
preview:
type:
- string
- "null"
real_id:
type:
- number
- "null"
tags:
anyOf:
- type: array
- type: object
properties:
abandonedcart:
type: string
blackfriday:
type: string
blog:
type: string
businessman:
type: string
christmas:
type: string
courses:
type: string
digest:
type: string
discount:
type: string
ecommerce:
type: string
education:
type: string
exhibition:
type: string
feedback:
type: string
food:
type: string
halloween:
type: string
hotel:
type: string
invite:
type: string
leadmagnet:
type: string
marketing:
type: string
meat:
type: string
mothersday:
type: string
museum:
type: string
newyear:
type: string
offline-event:
type: string
offlineevent:
type: string
online-event:
type: string
onlineshop:
type: string
photo:
type: string
photographer:
type: string
pizzeria:
type: string
product:
type: string
promo:
type: string
realestate:
type: string
registrationfortheprocedure:
type: string
sale:
type: string
shoes:
type: string
smm:
type: string
study:
type: string
subscribing:
type: string
tourist:
type: string
travel:
type: string
triggeremail:
type: string
valentine:
type: string
valentinesday:
type: string
video:
type: string
webinar:
type: string
womensday:
type: string
required:
- id
senders:
type: object
$schema: http://json-schema.org/schema#
additionalProperties: true
properties:
email:
type: string
is_allowed_for_smtp:
type:
- boolean
- "null"
name:
type:
- string
- "null"
status:
type:
- string
- "null"
required:
- email
webhooks:
type: object
$schema: http://json-schema.org/schema#
additionalProperties: true
properties:
action:
type:
- string
- "null"
id:
type: number
url:
type:
- string
- "null"
user_id:
type:
- number
- "null"
required:
- id
balance_details:
type: object
$schema: http://json-schema.org/schema#
additionalProperties: true
properties:
balance:
type:
- object
- "null"
properties:
bonus:
type:
- string
- "null"
currency:
type:
- string
- "null"
main:
type:
- string
- "null"
email:
type:
- object
- "null"
properties:
current_subscribers:
type:
- number
- "null"
finished_time:
type:
- string
- "null"
is_unique_type:
type:
- boolean
- "null"
maximum_subscribers:
type:
- number
- "null"
tariff_name:
type:
- string
- "null"
push:
type:
- object
- "null"
properties:
auto_renew:
type:
- number
- "null"
end_date:
type:
- string
- "null"
tariff_name:
type:
- string
- "null"
balance:
type: object
$schema: http://json-schema.org/schema#
additionalProperties: true
properties:
balance_currency:
type:
- number
- "null"
currency:
type: string
datetime:
type:
- string
- "null"
required:
- currency