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

🎉 New Source: LinkedIn Leads #42101

Closed

Conversation

kev-datams
Copy link
Contributor

@kev-datams kev-datams commented Jul 18, 2024

What

This Pull Request aims in proposing a first version of the LinkedIn Leads source connector based on official documentation.

How

This PR adds 2 base streams:

  • lead forms
  • lead form responses

This connector was developed using the low-code development framework.

Schemas of the ingested objects are defined in the schemas/ directory.

Review guide

  1. manifest.yaml
  2. README.md
  3. Documentation (notably the Limits & considerations section)
  4. No particular order after

User Impact

User will have access to 2 streams of a new connector.

As explained in the Limits & considerations section of the Documentation and due to low-code capabilities limitations:

  • some query params have been hard-coded in the path
  • Incremental sync is not supported because of specific query param expected by LinkedIn API (eg: submittedAtTimeRange=(start:1711407600000,end:1711494000000))

Also, LinkedIn Ads accounts must be hard-coded in the source connector configuration contrary to the dynamic behavior of LinkedIn Ads source connector. We do consider this spec as acceptable as a first step.

Can this PR be safely reverted and rolled back?

  • YES 💚
  • NO ❌ (as soon as it is merged, customers could potentially use it in production)

Copy link

vercel bot commented Jul 18, 2024

The latest updates on your projects. Learn more about Vercel for Git ↗︎

1 Skipped Deployment
Name Status Preview Comments Updated (UTC)
airbyte-docs ⬜️ Ignored (Inspect) Visit Preview Jul 24, 2024 11:59am

@kev-datams
Copy link
Contributor Author

Original discussion: #42042

Copy link
Member

@marcosmarxm marcosmarxm left a comment

Choose a reason for hiding this comment

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

Can you fix the title of your pull request to Source instead of Destination?

@kev-datams kev-datams changed the title 🎉 New Destination: LinkedIn Leads 🎉 New Source: LinkedIn Leads Jul 18, 2024
@kev-datams
Copy link
Contributor Author

Can you fix the title of your pull request to Source instead of Destination?

Done, sorry for that :)

@kev-datams kev-datams temporarily deployed to community-ci-auto July 18, 2024 15:45 — with GitHub Actions Inactive
@kev-datams
Copy link
Contributor Author

Just fix formatting via airbyte-ci format fix all, hope this helps 🙏

type: DpathExtractor
field_path:
- elements
partition_router:
Copy link
Contributor

Choose a reason for hiding this comment

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

Is that the same account_id as in linkedin_ads?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@natikgadzhi yes, why ?

Copy link
Contributor

@natikgadzhi natikgadzhi left a comment

Choose a reason for hiding this comment

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

@FVidalCarneiro this is excellent work, and don't get me wrong — I am EXTREMELY grateful to have this.

I want this merged, alongside your other PRs and ideas. Here's how we can do this:

  1. Make this a new stream in source-linkedin-ads
  2. I left some comments re: possibility of incremental behavior, but it's okay to start with full refresh
  3. schemas should be inline.

type: object
$schema: http://json-schema.org/draft-07/schema#
required:
- client_id
Copy link
Contributor

Choose a reason for hiding this comment

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

If leads require new scopes compared to linkedin_ads, this would need to be a breaking change cc @FVidalCarneiro

lead_form_response: true

schemas:
lead_form_response:
Copy link
Contributor

Choose a reason for hiding this comment

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

This looks incomplete — I would expect schemas to be inline in the yaml manifest, if the connector is made in Builder.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@@ -0,0 +1,284 @@
{
Copy link
Contributor

Choose a reason for hiding this comment

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

Don't do separate json schemas, let's put them in the manifest.

Copy link
Contributor Author

@kev-datams kev-datams Aug 5, 2024

Choose a reason for hiding this comment

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

@natikgadzhi why do you prefer this way of working with inline schemas ? IMHO, it is more readable to split them in distinct files and not overload the manifest 🤔

}
}
},
"created": {
Copy link
Contributor

Choose a reason for hiding this comment

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

It has created field that looks a lot like a timestamp. Can we use this for incremental sync?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@natikgadzhi we can not, according to the official documentation we can only use submittedAt filtering, and the issue is, as explained, on the way to build the API call submittedAtTimeRange=(start:1711407600000,end:1711494000000) which does not look feasible with low code
https://learn.microsoft.com/en-us/linkedin/marketing/lead-sync/leadsync?view=li-lms-2024-06&tabs=http#get-multiple-lead-form-responses

if you have any workaround suggestion 🙏

@kev-datams
Copy link
Contributor Author

kev-datams commented Oct 24, 2024

hello @natikgadzhi @marcosmarxm, please coud you reopen the PR ?

@kev-datams kev-datams deleted the kev-datams/source-linkedin-leads branch January 21, 2025 15:09
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.

4 participants