Skip to content

feat: add CSV bulk import for companies/contactsFeat/bulk csv import leads - #272

Closed
marcnascimento wants to merge 5 commits into
trycompai:releasefrom
marcnascimento:feat/bulk-csv-import-leads
Closed

marcnascimento wants to merge 5 commits into
trycompai:releasefrom
marcnascimento:feat/bulk-csv-import-leads

Conversation

@marcnascimento

Copy link
Copy Markdown

Summary

  • Importador CSV em massa para Companies/Contacts (preview + commit, dedupe por domain/email, recordSource = IMPORT).
  • Novos valores "Competitor" e "Investor" no Account type.
  • 4 novos custom fields em Contact: Idioma, Evento de origem, Mensagem gancho, Abordagem sugerida.
  • Tela em Settings → Import, com parser CSV próprio (RFC4180) no cliente.
  • Primeira carga real: 95 contatos do Web Summit Lisboa 2026 importados e validados no banco de dev local (não incluídos neste PR — dados pessoais reais ficaram fora do histórico do git).

Change completa documentada em openspec/changes/bulk-csv-import-leads/.

Test plan

  • check-types (13/13, roda serial neste sandbox por limite de memória)
  • lint / lint:slop
  • Testes unitários do parser CSV (6/6)
  • ImportService.preview/commit exercitado contra o Postgres local com CSV de teste e com o CSV real dos 95 contatos
  • Verificação visual da tela em Settings → Import (pendente de teste manual)

marcnascimento and others added 5 commits September 27, 2026 11:55
Daily crons in apps/api/vercel.json fit the Hobby plan. A scheduled
GitHub Actions workflow triggers /internal/sync/mailboxes every 10
minutes with CRON_SECRET. Adds the OpenSpec changes for the production
deploy and the proposal generator.
The Build Output API config wrote its own every-5-minutes cron and pinned
the function to iad1, so the dashboard region and the daily crons in
apps/api/vercel.json never applied. The build now reads the crons from
vercel.json and deploys the function next to the Frankfurt database.
Issuers with their own .docx templates, a service catalog with a price per
issuer, one issuer per client, versioned proposals with the generated and the
final file, status that offers the deal stage, and the client logo filled into
the template. Owner only.
Adds a tRPC-based CSV import flow (preview/commit, dedupe by domain/email,
recordSource IMPORT) plus the Competitor/Investor account types and four
new contact fields (idioma, evento de origem, mensagem gancho, abordagem
sugerida) needed to work a lead list from an event. Includes a minimal
RFC4180 CSV parser used client-side and a new Settings > Import screen.

Co-Authored-By: Claude Sonnet 5 <[email protected]>
@vercel

vercel Bot commented Nov 11, 2026

Copy link
Copy Markdown

@marcnascimento is attempting to deploy a commit to the Comp AI - PoC Team on Vercel.

A member of the Team first needs to authorize it.

@github-actions
github-actions Bot changed the base branch from release to main November 11, 2026 16:00
@github-actions

Copy link
Copy Markdown
Contributor

Retargeted this onto main.

release is the default branch so that a plain clone runs the last tagged release, but nothing merges into it — it is fast-forwarded onto the tag by the Release workflow and that is all. Changes go to main, and reach release when a release is cut.

Nothing is wrong with your branch. If the diff now shows commits that are already on main, rebase and force-push:

git fetch origin main
git rebase origin/main
git push --force-with-lease

@marcnascimento
marcnascimento changed the base branch from main to release November 11, 2026 16:04
@marcnascimento

Copy link
Copy Markdown
Author

Close

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant