Skip to content

feat: add Zapier SDK w/ HubSpot company enrichment workflow#56

Merged
marcosmarxm merged 9 commits into
mainfrom
feat/zapier-hubspot-company-enrichment
Apr 10, 2026
Merged

feat: add Zapier SDK w/ HubSpot company enrichment workflow#56
marcosmarxm merged 9 commits into
mainfrom
feat/zapier-hubspot-company-enrichment

Conversation

@marcosmarxm

Copy link
Copy Markdown
Contributor

Summary

  • Adds a new workflow (zapier_hubspot_company_enrichment) that enriches company profiles via the Apollo API and upserts results into HubSpot using the Zapier SDK
  • Adds shared clients: src/shared/clients/apollo.ts (organization enrichment) and src/shared/clients/zapier.ts (Zapier SDK wrapper)
  • Includes full README with orchestration flow, schemas, prerequisites, usage examples, and a Zapier SDK reference section

Test plan

  • Run npx output dev and execute npx output workflow run zapier_hubspot_company_enrichment stripe
  • Verify Apollo enrichment returns valid company data
  • Verify HubSpot company record is created or updated
  • Confirm workflow output matches the documented output schema

🤖 Generated with Claude Code

Adds a new workflow that enriches company profiles via Apollo and upserts
the results into HubSpot using the Zapier SDK. Includes shared clients
for Apollo (organization enrichment) and Zapier, along with full README
documentation.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@marcosmarxm marcosmarxm changed the title feat: add Zapier HubSpot company enrichment workflow feat: add Zapier SDK w/ HubSpot company enrichment workflow Apr 9, 2026
marcos-growthx and others added 7 commits April 9, 2026 15:00
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Remove unused companyName from enrichCompanyInputSchema/step, fix unused
imports, switch HubSpot upsert to new Zapier SDK client pattern, and add
Zod response validation.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…ttern

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…hoices and LLM mapping

Fetch valid HubSpot industry values via Zapier SDK's listInputFieldChoices API instead of
maintaining a hardcoded list, then use an LLM step to map Apollo's raw industry string to
the closest match. Apollo enrichment and industry fetch run in parallel for no added latency.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Break long import line, replace let with const using ternary, and fix
operator-linebreak style.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…nd safety

- Remove unused `companyName` from workflowInputSchema (was required but never read)
- Fix workflow name to match folder convention (`zapier_hubspot_company_enrichment`)
- Rename `createZapierClient` to `getZapierClient` (it's a singleton getter, not a factory)
- Guard `extractDomain` against empty string input to prevent runtime crash
- Remove redundant `hubspotUpsertOutputSchema.parse()` (SDK validates output automatically)
- Update scenario to match simplified input schema
@marcosmarxm marcosmarxm merged commit 900e586 into main Apr 10, 2026
1 check passed
@marcosmarxm marcosmarxm deleted the feat/zapier-hubspot-company-enrichment branch April 10, 2026 17:00
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.

2 participants