Hello! I’m working with the <Airbyte Gmail source ...
# give-feedback
l
Hello! I’m working with the Airbyte Gmail source connector and noticed that it currently only pulls *email attachment metadata*—not the actual binary files of the attachments themselves. I’d like to extend the connector so it automatically downloads all attachments along with the messages. • Has anyone here tried modifying an Airbyte source connector before (especially Gmail)? • Were there any unexpected challenges when editing the source code? • Do you think it’s worth customizing the connector, or is there a better approach for getting attachments into Airbyte?
i
Since Gmail is a community-supported connector, we'd love to have your contribution! If I'm reading this correctly, Gmail does have an endpoint to get attachments. You can try forking the Gmail connector and implementing file_uploader on a new stream to get attachments. We haven't released the UI for this to self-managed yet, but if you're a Cloud user, the Connector Builder should be able to handle this without you needing to write code. This is a relatively new feature in Airbyte, and I'm not sure if anyone from the community has used it yet. Feedback is welcome.
l
Yes! I've been trying to use that endpoint to get the attachments. My current approach is trying to define a new data stream that would call that endpoint, but I'm running into issues with returning the attachmentIds to complete that endpoint. The file_uploader looks interesting, but I need to figure out how to reliably retrieve the attachmentIds first
Also, does airbyte having two parentstreamConfigs for a single stream?
i
TikTok Marketing seems to achieve something like this with multiple SubstreamPartitionRouters in one stream. https://github.com/airbytehq/airbyte/blob/master/airbyte-integrations/connectors/source-tiktok-marketing/manifest.yaml#L2156 This is the only instance of anything like this that I can find.
l
Thanks so much! @Ian Alton
👍 1
Hey! I'm running into a new issue with this. I am trying to include information from a parent stream in the child stream. I've tried various methods (just injecting the whole stream, using extra fields, etc) but nothing is working. Has anyone run into this issue before?
i
😕 Maybe something isn't quite configured correctly. WooCommerce has a good example of a child stream (order_notes) using the parent stream (orders)'s IDs to make a request. That one doesn't use extra fields but I'm pretty sure you can just add them to access data from those fields. I have the AI looking through the repo to see if it can find me an example that's closer to Gmail.
🙏 1
Bing Ads is pretty close. It shows the use of different fields moving through multiple stream levels. Not seeing anything that's a direct analog of what you're trying to do but hopefully these examples provide a bit more insight.