Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

🐛 Source Intercom: Fix conversations order and sorting #8579

Conversation

lazebnyi
Copy link
Collaborator

@lazebnyi lazebnyi commented Dec 7, 2021

What

#8475 - Source Intercom: missing records from conversation stream

How

Records missing during sync because the Intercom connector has a logic to filter based on the cursor field and records weren't ordered and sorted. Now add query params to request order=asc&sort=updated_at (where updated_at is cursor_field).

Pre-merge Checklist

Expand the relevant checklist and delete the others.

Updating a connector

Community member or Airbyter

  • Grant edit access to maintainers (instructions)
  • Secrets in the connector's spec are annotated with airbyte_secret
  • Unit & integration tests added and passing. Community members, please provide proof of success locally e.g: screenshot or copy-paste unit, integration, and acceptance test output. To run acceptance tests for a Python connector, follow instructions in the README. For java connectors run ./gradlew :airbyte-integrations:connectors:<name>:integrationTest.
  • Code reviews completed
  • Documentation updated
    • Connector's README.md
    • Connector's bootstrap.md. See description and examples
    • Changelog updated in docs/integrations/<source or destination>/<name>.md including changelog. See changelog example
  • PR name follows PR naming conventions

Airbyter

If this is a community PR, the Airbyte engineer reviewing this PR is responsible for the below items.

  • Create a non-forked branch based on this PR and test the below items on it
  • Build is successful
  • Credentials added to Github CI. Instructions.
  • /test connector=connectors/<name> command is passing.
  • New Connector version released on Dockerhub by running the /publish command described here
  • After the new connector version is published, connector version bumped in the seed directory as described here
  • Seed specs have been re-generated by building the platform and committing the changes to the seed spec files, as described here

@github-actions github-actions bot added area/connectors Connector related issues area/documentation Improvements or additions to documentation labels Dec 7, 2021
@lazebnyi lazebnyi linked an issue Dec 7, 2021 that may be closed by this pull request
@lazebnyi
Copy link
Collaborator Author

lazebnyi commented Dec 7, 2021

/test connector=connectors/source-intercom

🕑 connectors/source-intercom https://github.com/airbytehq/airbyte/actions/runs/1549296818
✅ connectors/source-intercom https://github.com/airbytehq/airbyte/actions/runs/1549296818
Python tests coverage:

	 ---------- coverage: platform linux, python 3.8.10-final-0 -----------
	 Name                                                 Stmts   Miss  Cover
	 ------------------------------------------------------------------------
	 source_acceptance_test/__init__.py                       2      0   100%
	 source_acceptance_test/base.py                          10      4    60%
	 source_acceptance_test/config.py                        76      8    89%
	 source_acceptance_test/conftest.py                     109    109     0%
	 source_acceptance_test/plugin.py                        47     47     0%
	 source_acceptance_test/tests/__init__.py                 4      0   100%
	 source_acceptance_test/tests/test_core.py              235     95    60%
	 source_acceptance_test/tests/test_full_refresh.py       38     27    29%
	 source_acceptance_test/tests/test_incremental.py        69     38    45%
	 source_acceptance_test/utils/__init__.py                 6      0   100%
	 source_acceptance_test/utils/asserts.py                 37      2    95%
	 source_acceptance_test/utils/common.py                  54     24    56%
	 source_acceptance_test/utils/compare.py                 62     25    60%
	 source_acceptance_test/utils/connector_runner.py        82     49    40%
	 source_acceptance_test/utils/json_schema_helper.py     115     14    88%
	 ------------------------------------------------------------------------
	 TOTAL                                                  946    442    53%
	 ---------- coverage: platform linux, python 3.8.10-final-0 -----------
	 Name                          Stmts   Miss  Cover
	 -------------------------------------------------
	 source_intercom/__init__.py       2      0   100%
	 source_intercom/source.py       169     20    88%
	 -------------------------------------------------
	 TOTAL                           171     20    88%
	 ---------- coverage: platform linux, python 3.8.10-final-0 -----------
	 Name                          Stmts   Miss  Cover
	 -------------------------------------------------
	 source_intercom/__init__.py       2      0   100%
	 source_intercom/source.py       169     79    53%
	 -------------------------------------------------
	 TOTAL                           171     79    54%

@jrhizor jrhizor temporarily deployed to more-secrets December 7, 2021 12:05 Inactive
@lazebnyi lazebnyi requested a review from antixar December 7, 2021 12:13
@lazebnyi lazebnyi temporarily deployed to more-secrets December 7, 2021 12:14 Inactive
Copy link
Contributor

@antixar antixar left a comment

Choose a reason for hiding this comment

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

LGTM!
Please merge it but without publishing.
Now I'm fixing another Intercom bug. and I will publish your and my changes together

@lazebnyi lazebnyi marked this pull request as ready for review December 8, 2021 11:53
@lazebnyi lazebnyi merged commit edefc88 into master Dec 8, 2021
@lazebnyi lazebnyi deleted the lazebnyi/8475-fix-intercom-conversations-stream-order-and-sorting branch December 8, 2021 11:55
schlattk pushed a commit to schlattk/airbyte that referenced this pull request Jan 4, 2022
* Fix conversations order and sorting

* Updated PR number
@bkrausz
Copy link
Contributor

bkrausz commented Mar 16, 2022

@lazebnyi can you explain why this solves the issue? Intercom's conversations are default sorted by updated_at descending, and the source will iterate over all pages, only ignoring the specific conversations where updated_at is too old.

Specifically, the Intercom connector currently iterates over every conversation page, even in incremental sync. This causes it to take many hours (@sean-mckeever is also seeing this issue: #9572 (comment)). I am working on a fix by sorting by desc and cutting off the pagination when we hit the appropriate updated_at, and want to confirm this is OK first.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/connectors Connector related issues area/documentation Improvements or additions to documentation
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Source Intercom: missing records from conversation stream
5 participants