Skip to content

feature(examples): add callminer connector#22

Merged
fivetran-sahilkhirwal merged 16 commits into
fivetran:mainfrom
fivetran-clgritton:feature/callminer-connector
Jun 5, 2026
Merged

feature(examples): add callminer connector#22
fivetran-sahilkhirwal merged 16 commits into
fivetran:mainfrom
fivetran-clgritton:feature/callminer-connector

Conversation

@fivetran-clgritton

@fivetran-clgritton fivetran-clgritton commented May 27, 2026

Copy link
Copy Markdown
Collaborator

Description of Change

I'm adding the callminer code that I created for Sonos. The API spec is not online.

Testing

This connector code is being used by Sonos and was pretty thoroughly tested. I no longer have credentials to test.

Checklist

Some tips and links to help validate your PR:

  • Tested the connector with fivetran debug command.
  • Added/Updated example-specific README.md file, see the README template for the required structure and guidelines.
  • Followed Python Coding Standards, refer here

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new callminer/ Connector SDK example that syncs CallMiner Bulk Export data (OAuth2 client-credentials, export job polling, download + archive extraction, and per-data-type state tracking), and links it from the repo’s main README.

Changes:

  • Added a new multi-file CallMiner connector implementation (auth, API client, sync orchestration, file processing, and state helpers).
  • Added CallMiner example documentation (callminer/README.md) and an example configuration.json.
  • Updated the root README.md to list the new callminer example.

Reviewed changes

Copilot reviewed 10 out of 10 changed files in this pull request and generated 21 comments.

Show a summary per file
File Description
README.md Adds the CallMiner connector to the examples index.
callminer/connector.py Main connector entrypoint: schema + update orchestration, pending job resume logic, sync strategy grouping.
callminer/sync.py Job polling + incremental/LastNHours sync strategy orchestration and checkpointing.
callminer/file_processing.py Download + extraction + CSV parsing + (currently) threaded processing/upserts.
callminer/api_client.py CallMiner bulk export job creation/history/status lookup/deletion wrappers.
callminer/auth.py OAuth2 token acquisition + refresh and retry decorator.
callminer/config.py Configuration validation and parsing.
callminer/state.py Per-data-type state read/update helpers.
callminer/configuration.json Example configuration for local debug (currently non-placeholder values).
callminer/README.md Example documentation: workflow, configuration, tables, and file/module breakdown.

Comment thread callminer/connector.py Outdated
Comment thread callminer/sync.py Outdated
Comment thread callminer/sync.py Outdated
Comment thread callminer/api_client.py Outdated
Comment thread callminer/file_processing.py Outdated
Comment thread callminer/auth.py Outdated
Comment thread callminer/auth.py Outdated
Comment thread callminer/sync.py Outdated
Comment thread callminer/file_processing.py Outdated
Comment thread callminer/connector.py Outdated

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Left a few comments

Comment thread callminer/README.md Outdated
Comment thread callminer/README.md
Comment thread callminer/README.md Outdated
Comment thread callminer/README.md
Comment thread callminer/README.md
@fivetran-JenasVimal

Copy link
Copy Markdown
Contributor

@fivetran-clgritton please tend to all the co-pilot comments ,
Especially

  • the yeild op.checkpoint() as all yield commands have been deprecated
    • log.fine() → log.debug()
    • log.severe() → log.error() , please refer to the new pythonic logging standards
  • and also the configuration.json placeholders

@fivetran-JenasVimal fivetran-JenasVimal left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

^^

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@fivetran-JenasVimal fivetran-JenasVimal left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Minor suggestions , please re-request when you're done , I will approve !
Thank you .

Comment thread callminer/connector.py Outdated
Comment thread callminer/connector.py
Comment thread callminer/connector.py
Comment thread callminer/connector.py Outdated
Comment thread callminer/connector.py Outdated
Comment thread callminer/file_processing.py
Comment thread callminer/connector.py Outdated
Comment thread callminer/sync.py Outdated
Comment thread callminer/sync.py Outdated
Comment thread callminer/sync.py Outdated
fivetran-clgritton and others added 8 commits June 4, 2026 13:55
Co-authored-by: Jenas Anton Vimal <jenas.vimal@fivetran.com>
Co-authored-by: Jenas Anton Vimal <jenas.vimal@fivetran.com>
Co-authored-by: Jenas Anton Vimal <jenas.vimal@fivetran.com>
Co-authored-by: Jenas Anton Vimal <jenas.vimal@fivetran.com>
Co-authored-by: Jenas Anton Vimal <jenas.vimal@fivetran.com>
Co-authored-by: Jenas Anton Vimal <jenas.vimal@fivetran.com>

@fivetran-JenasVimal fivetran-JenasVimal left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@fivetran-sahilkhirwal fivetran-sahilkhirwal merged commit 9eadc86 into fivetran:main Jun 5, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants