Created
August 7, 2023 04:36
-
-
Save catkins/d1267c32fda475d54ce5a91b6015dcd3 to your computer and use it in GitHub Desktop.
Helpscout airbyte low-code connector
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
version: 0.50.0 | |
type: DeclarativeSource | |
check: | |
type: CheckStream | |
stream_names: | |
- Mailboxes | |
streams: | |
- type: DeclarativeStream | |
name: Mailboxes | |
primary_key: | |
- id | |
schema_loader: | |
type: InlineSchemaLoader | |
schema: | |
$schema: http://json-schema.org/schema# | |
properties: | |
_links: | |
properties: | |
fields: | |
properties: | |
href: | |
type: string | |
type: object | |
folders: | |
properties: | |
href: | |
type: string | |
type: object | |
self: | |
properties: | |
href: | |
type: string | |
type: object | |
type: object | |
createdAt: | |
type: string | |
email: | |
type: string | |
id: | |
type: number | |
name: | |
type: string | |
slug: | |
type: string | |
updatedAt: | |
type: string | |
type: object | |
retriever: | |
type: SimpleRetriever | |
requester: | |
type: HttpRequester | |
url_base: https://api.helpscout.net/ | |
path: /v2/mailboxes | |
http_method: GET | |
request_parameters: {} | |
request_headers: {} | |
authenticator: | |
type: OAuthAuthenticator | |
client_id: '{{ config[''client_id''] }}' | |
grant_type: client_credentials | |
client_secret: '{{ config[''client_secret''] }}' | |
refresh_request_body: {} | |
token_refresh_endpoint: https://api.helpscout.net/v2/oauth2/token | |
request_body_json: {} | |
record_selector: | |
type: RecordSelector | |
extractor: | |
type: DpathExtractor | |
field_path: | |
- _embedded | |
- mailboxes | |
- '*' | |
paginator: | |
type: NoPagination | |
- type: DeclarativeStream | |
name: Conversations | |
primary_key: | |
- id | |
schema_loader: | |
type: InlineSchemaLoader | |
schema: | |
$schema: http://json-schema.org/schema# | |
properties: | |
_embedded: | |
properties: | |
threads: | |
type: array | |
type: object | |
_links: | |
properties: | |
assignee: | |
properties: | |
href: | |
type: string | |
type: object | |
closedBy: | |
properties: | |
href: | |
type: string | |
type: object | |
createdByCustomer: | |
properties: | |
href: | |
type: string | |
type: object | |
createdByUser: | |
properties: | |
href: | |
type: string | |
type: object | |
mailbox: | |
properties: | |
href: | |
type: string | |
type: object | |
primaryCustomer: | |
properties: | |
href: | |
type: string | |
type: object | |
self: | |
properties: | |
href: | |
type: string | |
type: object | |
threads: | |
properties: | |
href: | |
type: string | |
type: object | |
web: | |
properties: | |
href: | |
type: string | |
type: object | |
type: object | |
assignee: | |
properties: | |
email: | |
type: string | |
first: | |
type: string | |
id: | |
type: number | |
last: | |
type: string | |
photoUrl: | |
type: string | |
type: | |
type: string | |
type: object | |
bcc: | |
type: array | |
cc: | |
items: | |
type: string | |
type: array | |
closedAt: | |
type: string | |
closedBy: | |
type: number | |
closedByUser: | |
properties: | |
email: | |
type: string | |
first: | |
type: string | |
id: | |
type: number | |
last: | |
type: string | |
photoUrl: | |
type: string | |
type: | |
type: string | |
type: object | |
createdAt: | |
type: string | |
createdBy: | |
properties: | |
email: | |
type: string | |
first: | |
type: string | |
id: | |
type: number | |
last: | |
type: string | |
photoUrl: | |
type: string | |
type: | |
type: string | |
type: object | |
customFields: | |
items: | |
properties: | |
id: | |
type: number | |
name: | |
type: string | |
text: | |
type: string | |
value: | |
type: string | |
type: object | |
type: array | |
customerWaitingSince: | |
properties: | |
friendly: | |
type: string | |
time: | |
type: string | |
type: object | |
folderId: | |
type: number | |
id: | |
type: number | |
mailboxId: | |
type: number | |
number: | |
type: number | |
preview: | |
type: string | |
primaryCustomer: | |
properties: | |
email: | |
type: string | |
first: | |
type: string | |
id: | |
type: number | |
last: | |
type: string | |
photoUrl: | |
type: string | |
type: | |
type: string | |
type: object | |
source: | |
properties: | |
type: | |
type: string | |
via: | |
type: string | |
type: object | |
state: | |
type: string | |
status: | |
type: string | |
subject: | |
type: string | |
tags: | |
items: | |
properties: | |
color: | |
type: string | |
id: | |
type: number | |
tag: | |
type: string | |
type: object | |
type: array | |
threads: | |
type: number | |
type: | |
type: string | |
userUpdatedAt: | |
type: string | |
type: object | |
retriever: | |
type: SimpleRetriever | |
requester: | |
type: HttpRequester | |
url_base: https://api.helpscout.net/ | |
path: /v2/conversations | |
http_method: GET | |
request_parameters: | |
status: all | |
mailbox: '{{ stream_partition[''mailbox_id''] }}' | |
sortField: modifiedAt | |
request_headers: {} | |
authenticator: | |
type: OAuthAuthenticator | |
client_id: '{{ config[''client_id''] }}' | |
grant_type: client_credentials | |
client_secret: '{{ config[''client_secret''] }}' | |
refresh_request_body: {} | |
token_refresh_endpoint: https://api.helpscout.net/v2/oauth2/token | |
request_body_json: {} | |
record_selector: | |
type: RecordSelector | |
extractor: | |
type: DpathExtractor | |
field_path: | |
- _embedded | |
- conversations | |
- '*' | |
paginator: | |
type: DefaultPaginator | |
page_token_option: | |
type: RequestPath | |
pagination_strategy: | |
type: CursorPagination | |
cursor_value: '{{ response.get("_links", {}).get("next", {}).get("href", {}) }}' | |
stop_condition: '{{ not response.get("_links", {}).get("next", {}).get("href", {}) }}' | |
partition_router: | |
- type: SubstreamPartitionRouter | |
parent_stream_configs: | |
- type: ParentStreamConfig | |
parent_key: id | |
partition_field: mailbox_id | |
stream: | |
type: DeclarativeStream | |
name: Mailboxes | |
primary_key: | |
- id | |
schema_loader: | |
type: InlineSchemaLoader | |
schema: | |
$schema: http://json-schema.org/schema# | |
properties: | |
_links: | |
properties: | |
fields: | |
properties: | |
href: | |
type: string | |
type: object | |
folders: | |
properties: | |
href: | |
type: string | |
type: object | |
self: | |
properties: | |
href: | |
type: string | |
type: object | |
type: object | |
createdAt: | |
type: string | |
email: | |
type: string | |
id: | |
type: number | |
name: | |
type: string | |
slug: | |
type: string | |
updatedAt: | |
type: string | |
type: object | |
retriever: | |
type: SimpleRetriever | |
requester: | |
type: HttpRequester | |
url_base: https://api.helpscout.net/ | |
path: /v2/mailboxes | |
http_method: GET | |
request_parameters: {} | |
request_headers: {} | |
authenticator: | |
type: OAuthAuthenticator | |
client_id: '{{ config[''client_id''] }}' | |
grant_type: client_credentials | |
client_secret: '{{ config[''client_secret''] }}' | |
refresh_request_body: {} | |
token_refresh_endpoint: https://api.helpscout.net/v2/oauth2/token | |
request_body_json: {} | |
record_selector: | |
type: RecordSelector | |
extractor: | |
type: DpathExtractor | |
field_path: | |
- _embedded | |
- mailboxes | |
- '*' | |
paginator: | |
type: NoPagination | |
incremental_sync: | |
type: DatetimeBasedCursor | |
cursor_field: createdAt | |
datetime_format: '%Y-%m-%dT%H:%M:%SZ' | |
lookback_window: P1D | |
start_time_option: | |
type: RequestOption | |
field_name: modifiedSince | |
inject_into: request_parameter | |
start_datetime: | |
type: MinMaxDatetime | |
datetime: '{{ config[''start_date''] }}' | |
datetime_format: '%Y-%m-%dT%H:%M:%SZ' | |
- type: DeclarativeStream | |
name: Threads | |
primary_key: | |
- id | |
schema_loader: | |
type: InlineSchemaLoader | |
schema: | |
$schema: http://json-schema.org/schema# | |
properties: | |
_embedded: | |
properties: | |
attachments: | |
items: | |
properties: | |
_links: | |
properties: | |
data: | |
properties: | |
href: | |
type: string | |
type: object | |
self: | |
properties: | |
href: | |
type: string | |
type: object | |
web: | |
properties: | |
href: | |
type: string | |
type: object | |
type: object | |
filename: | |
type: string | |
height: | |
type: number | |
id: | |
type: number | |
mimeType: | |
type: string | |
size: | |
type: number | |
width: | |
type: number | |
type: object | |
type: array | |
type: object | |
_links: | |
properties: | |
assignedTo: | |
properties: | |
href: | |
type: string | |
type: object | |
createdByCustomer: | |
properties: | |
href: | |
type: string | |
type: object | |
createdByUser: | |
properties: | |
href: | |
type: string | |
type: object | |
customer: | |
properties: | |
href: | |
type: string | |
type: object | |
type: object | |
action: | |
properties: | |
associatedEntities: | |
properties: | |
mailbox: | |
type: number | |
user: | |
type: number | |
workflow: | |
type: number | |
type: object | |
text: | |
type: string | |
type: | |
type: string | |
type: object | |
assignedTo: | |
properties: | |
email: | |
type: string | |
first: | |
type: string | |
id: | |
type: number | |
last: | |
type: string | |
type: object | |
bcc: | |
type: array | |
body: | |
type: string | |
cc: | |
type: array | |
conversationId: | |
type: number | |
createdAt: | |
type: string | |
createdBy: | |
properties: | |
email: | |
type: string | |
first: | |
type: string | |
id: | |
type: number | |
last: | |
type: string | |
photoUrl: | |
type: string | |
type: | |
type: string | |
type: object | |
customer: | |
properties: | |
email: | |
type: string | |
first: | |
type: string | |
id: | |
type: number | |
last: | |
type: string | |
photoUrl: | |
type: string | |
type: object | |
id: | |
type: number | |
openedAt: | |
type: string | |
savedReplyId: | |
type: number | |
source: | |
properties: | |
type: | |
type: string | |
via: | |
type: string | |
type: object | |
state: | |
type: string | |
status: | |
type: string | |
to: | |
type: array | |
type: | |
type: string | |
type: object | |
retriever: | |
type: SimpleRetriever | |
requester: | |
type: HttpRequester | |
url_base: https://api.helpscout.net/ | |
path: /v2/conversations/{{ stream_partition['conversation_id'] }}/threads | |
http_method: GET | |
request_parameters: {} | |
request_headers: {} | |
authenticator: | |
type: OAuthAuthenticator | |
client_id: '{{ config[''client_id''] }}' | |
grant_type: client_credentials | |
client_secret: '{{ config[''client_secret''] }}' | |
refresh_request_body: {} | |
token_refresh_endpoint: https://api.helpscout.net/v2/oauth2/token | |
request_body_json: {} | |
record_selector: | |
type: RecordSelector | |
extractor: | |
type: DpathExtractor | |
field_path: | |
- _embedded | |
- threads | |
- '*' | |
paginator: | |
type: DefaultPaginator | |
page_token_option: | |
type: RequestPath | |
pagination_strategy: | |
type: CursorPagination | |
cursor_value: '{{ response.get("_links", {}).get("next", {}).get("href", {}) }}' | |
stop_condition: '{{ not response.get("_links", {}).get("next", {}).get("href", {}) }}' | |
partition_router: | |
- type: SubstreamPartitionRouter | |
parent_stream_configs: | |
- type: ParentStreamConfig | |
parent_key: id | |
partition_field: conversation_id | |
stream: | |
type: DeclarativeStream | |
name: Conversations | |
primary_key: | |
- id | |
schema_loader: | |
type: InlineSchemaLoader | |
schema: | |
$schema: http://json-schema.org/schema# | |
properties: | |
_embedded: | |
properties: | |
threads: | |
type: array | |
type: object | |
_links: | |
properties: | |
assignee: | |
properties: | |
href: | |
type: string | |
type: object | |
closedBy: | |
properties: | |
href: | |
type: string | |
type: object | |
createdByCustomer: | |
properties: | |
href: | |
type: string | |
type: object | |
createdByUser: | |
properties: | |
href: | |
type: string | |
type: object | |
mailbox: | |
properties: | |
href: | |
type: string | |
type: object | |
primaryCustomer: | |
properties: | |
href: | |
type: string | |
type: object | |
self: | |
properties: | |
href: | |
type: string | |
type: object | |
threads: | |
properties: | |
href: | |
type: string | |
type: object | |
web: | |
properties: | |
href: | |
type: string | |
type: object | |
type: object | |
assignee: | |
properties: | |
email: | |
type: string | |
first: | |
type: string | |
id: | |
type: number | |
last: | |
type: string | |
photoUrl: | |
type: string | |
type: | |
type: string | |
type: object | |
bcc: | |
type: array | |
cc: | |
items: | |
type: string | |
type: array | |
closedAt: | |
type: string | |
closedBy: | |
type: number | |
closedByUser: | |
properties: | |
email: | |
type: string | |
first: | |
type: string | |
id: | |
type: number | |
last: | |
type: string | |
photoUrl: | |
type: string | |
type: | |
type: string | |
type: object | |
createdAt: | |
type: string | |
createdBy: | |
properties: | |
email: | |
type: string | |
first: | |
type: string | |
id: | |
type: number | |
last: | |
type: string | |
photoUrl: | |
type: string | |
type: | |
type: string | |
type: object | |
customFields: | |
items: | |
properties: | |
id: | |
type: number | |
name: | |
type: string | |
text: | |
type: string | |
value: | |
type: string | |
type: object | |
type: array | |
customerWaitingSince: | |
properties: | |
friendly: | |
type: string | |
time: | |
type: string | |
type: object | |
folderId: | |
type: number | |
id: | |
type: number | |
mailboxId: | |
type: number | |
number: | |
type: number | |
preview: | |
type: string | |
primaryCustomer: | |
properties: | |
email: | |
type: string | |
first: | |
type: string | |
id: | |
type: number | |
last: | |
type: string | |
photoUrl: | |
type: string | |
type: | |
type: string | |
type: object | |
source: | |
properties: | |
type: | |
type: string | |
via: | |
type: string | |
type: object | |
state: | |
type: string | |
status: | |
type: string | |
subject: | |
type: string | |
tags: | |
items: | |
properties: | |
color: | |
type: string | |
id: | |
type: number | |
tag: | |
type: string | |
type: object | |
type: array | |
threads: | |
type: number | |
type: | |
type: string | |
userUpdatedAt: | |
type: string | |
type: object | |
retriever: | |
type: SimpleRetriever | |
requester: | |
type: HttpRequester | |
url_base: https://api.helpscout.net/ | |
path: /v2/conversations | |
http_method: GET | |
request_parameters: | |
status: all | |
mailbox: '{{ stream_partition[''mailbox_id''] }}' | |
sortField: modifiedAt | |
request_headers: {} | |
authenticator: | |
type: OAuthAuthenticator | |
client_id: '{{ config[''client_id''] }}' | |
grant_type: client_credentials | |
client_secret: '{{ config[''client_secret''] }}' | |
refresh_request_body: {} | |
token_refresh_endpoint: https://api.helpscout.net/v2/oauth2/token | |
request_body_json: {} | |
record_selector: | |
type: RecordSelector | |
extractor: | |
type: DpathExtractor | |
field_path: | |
- _embedded | |
- conversations | |
- '*' | |
paginator: | |
type: DefaultPaginator | |
page_token_option: | |
type: RequestPath | |
pagination_strategy: | |
type: CursorPagination | |
cursor_value: >- | |
{{ response.get("_links", {}).get("next", | |
{}).get("href", {}) }} | |
stop_condition: >- | |
{{ not response.get("_links", {}).get("next", | |
{}).get("href", {}) }} | |
partition_router: | |
- type: SubstreamPartitionRouter | |
parent_stream_configs: | |
- type: ParentStreamConfig | |
parent_key: id | |
partition_field: mailbox_id | |
stream: | |
type: DeclarativeStream | |
name: Mailboxes | |
primary_key: | |
- id | |
schema_loader: | |
type: InlineSchemaLoader | |
schema: | |
$schema: http://json-schema.org/schema# | |
properties: | |
_links: | |
properties: | |
fields: | |
properties: | |
href: | |
type: string | |
type: object | |
folders: | |
properties: | |
href: | |
type: string | |
type: object | |
self: | |
properties: | |
href: | |
type: string | |
type: object | |
type: object | |
createdAt: | |
type: string | |
email: | |
type: string | |
id: | |
type: number | |
name: | |
type: string | |
slug: | |
type: string | |
updatedAt: | |
type: string | |
type: object | |
retriever: | |
type: SimpleRetriever | |
requester: | |
type: HttpRequester | |
url_base: https://api.helpscout.net/ | |
path: /v2/mailboxes | |
http_method: GET | |
request_parameters: {} | |
request_headers: {} | |
authenticator: | |
type: OAuthAuthenticator | |
client_id: '{{ config[''client_id''] }}' | |
grant_type: client_credentials | |
client_secret: '{{ config[''client_secret''] }}' | |
refresh_request_body: {} | |
token_refresh_endpoint: https://api.helpscout.net/v2/oauth2/token | |
request_body_json: {} | |
record_selector: | |
type: RecordSelector | |
extractor: | |
type: DpathExtractor | |
field_path: | |
- _embedded | |
- mailboxes | |
- '*' | |
paginator: | |
type: NoPagination | |
incremental_sync: | |
type: DatetimeBasedCursor | |
cursor_field: createdAt | |
datetime_format: '%Y-%m-%dT%H:%M:%SZ' | |
lookback_window: P1D | |
start_time_option: | |
type: RequestOption | |
field_name: modifiedSince | |
inject_into: request_parameter | |
start_datetime: | |
type: MinMaxDatetime | |
datetime: '{{ config[''start_date''] }}' | |
datetime_format: '%Y-%m-%dT%H:%M:%SZ' | |
transformations: | |
- type: AddFields | |
fields: | |
- path: | |
- conversationId | |
value: '{{ stream_partition[''conversation_id''] }}' | |
spec: | |
connection_specification: | |
$schema: http://json-schema.org/draft-07/schema# | |
type: object | |
required: | |
- start_date | |
- client_id | |
- client_secret | |
properties: | |
start_date: | |
type: string | |
title: Start date | |
format: date-time | |
pattern: ^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$ | |
order: 0 | |
client_id: | |
type: string | |
title: Client ID | |
airbyte_secret: true | |
order: 1 | |
client_secret: | |
type: string | |
title: Client secret | |
airbyte_secret: true | |
order: 2 | |
additionalProperties: true | |
documentation_url: https://example.org | |
type: Spec | |
metadata: | |
autoImportSchema: | |
Mailboxes: true | |
Conversations: true | |
Threads: true |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment