Which variant of tap-hubspot is most mature based ...
# getting-started
j
Which variant of tap-hubspot is most mature based on your experiences? They are so many...
v
There's a meltano stats in the right, I'd use that and then test the top few 🤷
j
I use the same criteria when creating a short list, here I get: • potlocsinger-io (default) • spacecowboy Which one is the best? 😉 Btw no Github README mentions why they create a different version than default one
My colleague picked spacecowboy, because it supports API_KEY auth, default one supports only OAuth. But potloc supports API_KEY too 😉
p
I've been looking at this recently too. Did your colleague happen to do a comparison of the streams that are covered by each? 😄 thats what I was trying to compare
j
Based on Github README and the source code, both support 14 streams, most likely the same
a
Just looking at the number of projects metric, the potloc variant and singer-io seem to have the largest number of projects. While the singer-io one has more usage, some of that will be because it is the default on the hub. And the potloc one is built on the SDK, which means it'll get new features and bug fixes when those are available.
👀 Hmmm. The spacecowboy variant is also built on the SDK, but missing the badge.
p
I tried to map streams across variants. Its a bit tough but here a start
cc @Stéphane Burwash if you have more details on your motivation to create the potloc variant and if you know about the difference in stream support across the variants
s
Hey @jan_soubusta, thanks for reaching out! I'd personally recommend our tap, although I am definitely biased 😉 For the deals, companies and contacts we developed a technique to extract all properties for these objects at each extract. This way, you do not need to define which custom properties you need for each object. We also extract associations so that you can associate deals - companies - contacts ⚠️ this is quite a heavy load as it is not optimised - I will be working in the next few weeks to add associations directly in the source objects. We currently do not support many engagements, but plan on extracting new engagement objects (rather than from the legacy engagement API) in the coming quarter. We also welcome any contributions to the tap if you have a concern / are missing an endpoint 😄
j
@Stéphane Burwash Thanks for details! Will sync with our RevOps people, if they would utilize these features, and if yes, we migrate to your tap.
d
Hi @Stéphane Burwash, do you plan on supporting
Start Date (start_date)
, and if so for which streams?
s
Hey @danylo I don't currently plan on applying start date for hubspot since the API doesnt really support it (unless you're talking about the search API). If you have any ideas on how to implement it I would welcome suggestions / a PR though 😄
j
@Stéphane Burwash Try to switch to your variant:
Copy code
- name: tap-hubspot
    variant: potloc
    pip_url: git+<https://github.com/potloc/tap-hubspot.git>
    capabilities:
      - schema-flattening
      - state
      - catalog
      - discover
    select:
      - contacts.*
Execution fails:
Copy code
meltano run tap-hubspot target-snowflake
2023-03-14T10:57:20.674429Z [info     ]     raise FatalAPIError(msg)   cmd_type=elb consumer=False name=tap-hubspot producer=True stdio=stderr string_id=tap-hubspot
2023-03-14T10:57:20.674648Z [info     ] singer_sdk.exceptions.FatalAPIError: 414 Client Error: URI Too Long for path: /crm/v3/objects/contacts cmd_type=elb consumer=False name=tap-hubspot producer=True stdio=stderr string_id=tap-hubspot
2
Any advice?
s
Hey @jan_soubusta, I'll look into this because I do remember seeing something similar before. Are you capable of seeing about how many properties you have using the
_LOG_REQUEST_METRICS_URL
variable? This is a problem on the hubspot side where we are specifying too many properties in the URI. There would be 2 solutions to this: • 1 - create an option to specify if you want "barebones" or "all properties" for specific endpoints from the tap, and then depending on that variable see if we get our results from a static schema or a dynamic one where we get all the properties • 2 - Use the "search" API to introduce the URI parameters in the body, removing the problem altogether. I'll try to dig into this a bit more though 😄
j
I don't have enough skills to understand what you are writing 😉 Can you explain more in detail how can I achieve each of mentioned solutions?
s
Of course! The meltano sdk offers allows you to specify an environment variable called
_LOG_REQUEST_METRICS_URL
in a specific stream, which allows you to view the message being sent out to the API. This would allow you to see what data is being sent out and help us debug your issue. To do this, simply fork my repo and add the line
_LOG_REQUEST_METRICS_URL=true
here. This log output should then be more helpful. Regarding the 2 solutions, I'll do a bit of research on my end and reach back out this afternoon; I just want to validate a few things first 😄.
Hey @jan_soubusta so I've done a bit of digging, and couldn't find any quick solution. Just to confirm, is your hubspot token based a private hubspot app (as opposed to a public app). I will be investigating a bit more over the course of the week, because I know I've had this issue before and I'm annoyed at myself for not documenting it 😅
j
I suppose that we have a private app in two instances - DEV and PROD. I am now overloaded with official duties. I hope soon to test
_LOG_REQUEST_METRICS_URL=true
and send you the results.
s
Hi @Stéphane Burwash! Trying to use the hubspot tap you developer. To be clear, was it tested with oauth for private apps or is that still in development? If not, how did you approach using with public apps? cc @sweta_garai
s
Hi @sarah_krasnik 😄 currently this tap only works with private apps - it does not work with public apps. We have not researched working with public apps yet.
s
Hi @Stéphane Burwash. I am trying to use meltano potloc variant for extracting from hubspot. I get this error while testing or extraction: Need help fixing this problem? Visit http://melta.no/ for troubleshooting steps, or to join our friendly Slack community. ELT could not be completed: Cannot start extractor: Catalog discovery failed: command ['/Users/admin/Desktop/Analytics/meltano/hubspot-variant/.meltano/extractors/tap-hubspot/venv/bin/tap-hubspot', '--config', '/Users/admin/Desktop/Analytics/meltano/hubspot-variant/.meltano/run/elt/2023-05-03T175545--tap-hubspot--target-jsonl/2d784bbb-0dd9-4f91-a3a2-a2f11819ed0e/tap.dc64f0b1-7803-44d5-8abe-afa713c0f2ef.config.json', '--discover'] returned 1 with stderr: time=2023-05-03 105546 name=tap-hubspot level=INFO message=tap-hubspot v0.0.1, Meltano SDK v0.4.9) time=2023-05-03 105546 name=tap-hubspot level=INFO message=Skipping parse of env var settings... time=2023-05-03 105546 name=tap-hubspot level=INFO message=Config validation passed with 0 warnings. time=2023-05-03 105546 name=root level=INFO message=Operator '__else__=None' was not found. Unmapped streams will be included in output. Traceback (most recent call last): File "/Users/admin/Desktop/Analytics/meltano/hubspot-variant/.meltano/extractors/tap-hubspot/venv/lib/python3.10/site-packages/tap_hubspot/client.py", line 185, in get_properties return res["results"] KeyError: 'results' Could you help? Thanks CC: @sarah_krasnik