Skip to content

fix(source-gong): fix extensiveCalls, answeredScorecards, callTranscripts incremental sync not filtering server-side#74091

Draft
Daniel Hostetler (humungasaurus) wants to merge 2 commits intoairbytehq:masterfrom
humungasaurus:fix/source-gong-incremental-sync
Draft

fix(source-gong): fix extensiveCalls, answeredScorecards, callTranscripts incremental sync not filtering server-side#74091
Daniel Hostetler (humungasaurus) wants to merge 2 commits intoairbytehq:masterfrom
humungasaurus:fix/source-gong-incremental-sync

Conversation

@humungasaurus
Copy link

@humungasaurus Daniel Hostetler (humungasaurus) commented Feb 27, 2026

Summary

Fixes #74090

Three POST-based streams in source-gong claim incremental sync but fetch all records on every sync due to incorrect fromDateTime injection. This is the same class of bug fixed in PR #71344 for answeredScorecards, but the fixes for extensiveCalls and callTranscripts were missed, and a stale request_parameters entry was left behind on answeredScorecards.

Changes

  • extensiveCalls: Changed start_time_option from inject_into: request_parameter to inject_into: body_json with field_path: [filter, fromDateTime]. Removed hardcoded request_body_json.filter.fromDateTime so the cursor value from DatetimeBasedCursor is used instead of config['start_date'] on every sync.
  • answeredScorecards: Removed stale request_parameters.fromDateTime: "{{ config['start_date'] }}" from the requester. This is a POST endpoint so Gong ignores query params — the incremental cursor already correctly injects into body_json.
  • callTranscripts: Removed hardcoded request_body_json.filter.fromDateTime. Added incremental_sync with DatetimeBasedCursor and start_time_option using inject_into: body_json with field_path: [filter, fromDateTime].
  • Bumped version from 0.5.5 to 0.5.6.

Root cause

Gong's POST endpoints ignore query parameters. The start_time_option was configured with inject_into: request_parameter, which appends fromDateTime as a query param — silently ignored by Gong. Additionally, request_body_json.filter.fromDateTime was hardcoded to config['start_date'], preventing the cursor from ever advancing past the initial start date.

Test plan

  • Verify extensiveCalls incremental sync only fetches records newer than the last cursor state
  • Verify answeredScorecards still works correctly without the stale request_parameters
  • Verify callTranscripts incremental sync filters server-side via filter.fromDateTime in the POST body

🤖 Generated with Claude Code

…orecards, callTranscripts

- extensiveCalls: change start_time_option from request_parameter to
  body_json with field_path [filter, fromDateTime], and remove hardcoded
  filter.fromDateTime from request_body_json
- answeredScorecards: remove stale request_parameters.fromDateTime that
  is ignored on POST endpoints
- callTranscripts: add incremental_sync with DatetimeBasedCursor and
  body_json injection, remove hardcoded filter.fromDateTime from
  request_body_json

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@CLAassistant
Copy link

CLAassistant commented Feb 27, 2026

CLA assistant check
All committers have signed the CLA.

@octavia-bot
Copy link
Contributor

octavia-bot bot commented Feb 27, 2026

Note

📝 PR Converted to Draft

More info...

Thank you for creating this PR. As a policy to protect our engineers' time, Airbyte requires all PRs to be created first in draft status. Your PR has been automatically converted to draft status in respect for this policy.

As soon as your PR is ready for formal review, you can proceed to convert the PR to "ready for review" status by clicking the "Ready for review" button at the bottom of the PR page.

To skip draft status in future PRs, please include [ready] in your PR title or add the skip-draft-status label when creating your PR.

@github-actions
Copy link
Contributor

👋 Welcome to Airbyte!

Thank you for your contribution from humungasaurus/airbyte! We're excited to have you in the Airbyte community.

If you have any questions, feel free to ask in the PR comments or join our Slack community.

💡 Show Tips and Tricks

PR Slash Commands

As needed or by request, Airbyte Maintainers can execute the following slash commands on your PR:

  • /format-fix - Fixes most formatting issues.
  • /bump-version - Bumps connector versions.
  • /run-connector-tests - Runs connector tests.
  • /run-cat-tests - Runs CAT tests.
  • /run-regression-tests - Runs regression tests for the modified connector(s).
  • /build-connector-images - Builds and publishes a pre-release docker image for the modified connector(s).
  • /publish-connectors-prerelease - Publishes pre-release connector builds (tagged as {version}-preview.{git-sha}) for all modified connectors in the PR.
  • /ai-review - AI-powered PR review for connector safety and quality gates.
  • /force-merge reason="<A_GOOD_REASON>" - Force merges the PR using admin privileges, bypassing CI checks. Requires a reason.

Tips for Working with CI

  1. Pre-Release Checks. Please pay attention to these, as they contain standard checks on the metadata.yaml file, docs requirements, etc. If you need help resolving a pre-release check, please ask a maintainer.
    • Note: If you are creating a new connector, please be sure to replace the default logo.svg file with a suitable icon.
  2. Connector CI Tests. Some failures here may be expected if your tests require credentials. Please review these results to ensure (1) unit tests are passing, if applicable, and (2) integration tests pass to the degree possible and expected.
  3. (Optional.) BYO Connector Credentials for tests in your fork. You can optionally set up your fork with BYO credentials for your connector. This can significantly speed up your review, ensuring your changes are fully tested before the maintainers begin their review.
📚 Show Repo Guidance

Helpful Resources

📝 Edit this welcome message.

@humungasaurus Daniel Hostetler (humungasaurus) changed the title 🐛 Source Gong: fix extensiveCalls, answeredScorecards, callTranscripts incremental sync not filtering server-side fix(source-gong): fix extensiveCalls, answeredScorecards, callTranscripts incremental sync not filtering server-side Feb 27, 2026
Update callTranscripts from Full Refresh to Incremental in the docs
and add changelog entry for the incremental sync fix.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@humungasaurus Daniel Hostetler (humungasaurus) marked this pull request as ready for review February 27, 2026 19:02
@humungasaurus Daniel Hostetler (humungasaurus) marked this pull request as draft February 27, 2026 22:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Development

Successfully merging this pull request may close these issues.

🐛 Source Gong: extensiveCalls, answeredScorecards, and callTranscripts incremental sync fetches all records on every sync

3 participants