Vinc Guide
Sign in
Guide / For Administrators / Bulk Onboarding

Seed cards for your existing team in one upload.

CSV in, cards live. Each row maps to an Odoo user that already exists; the upload creates the vCards and emails each person a "your card is ready" link.

Who can run this: the /bulk-onboard flow is locked to users with the Vinc Manager role (or Odoo system admins, who inherit it). Grant it from Settings → Users & Companies → Users → Access Rights → Vinc. Regular internal users have no access to the bulk-onboarding models via RPC or UI.
Read first: bulk onboarding now requires every email in your CSV to already exist as an Odoo user (under Settings → Users & Companies → Users). The upload no longer creates user accounts, no longer sends magic-link activation emails, and no longer asks the recipient to set a password. Vinc is an app on top of Odoo — your reps come from Odoo's standard user-management flow, and this wizard just gives them a vCard.

01The CSV format

Bulk onboarding takes a CSV with one row per future card. Two columns are required, the rest are optional:

  • Required: name, email (must match an existing Odoo user's login)
  • Profile: phone, mobile, function (job title), about
  • Address: street, street2, city, zip, country, state
  • Social: linkedin_url, facebook_url, twitter_url, instagram_url, whatsapp_url, youtube_url, calendly_url
  • URL: website_slug (auto-generated from name if omitted)

Unknown columns are ignored, so it's safe to upload a richer HR export and let Vinc pick what it needs.

📥 Download the starter CSV — pre-populated with five example rows, headers, and per-column hints in the first row.

02The upload flow

From the user dashboard, click Bulk Onboarding (admin-only button). You'll land on the wizard at /bulk-onboard:

  1. Upload CSV — drag-and-drop or pick a file. Vinc parses and previews the first 5 rows. The upload response also reports how many emails matched existing Odoo users — a yellow banner appears listing any rows that will be skipped because no matching user exists.
  2. Review & map — confirm column mappings; fix typos in row data inline. If you see unmatched-email rows in the banner, either remove them from the CSV, or first create those users in Settings → Users & Companies → Users and re-upload.
  3. Set defaults — pick a template, primary/secondary colors, and lead-form behavior to apply to every card. Per-row overrides win.
  4. Submit — Vinc creates the vCards (one per matched row) in a single transaction and emails each user a "your card is ready" notification.
The wizard is lenient about unmatched rows: matched rows still process, unmatched rows land in the batch's error log so you can tell exactly who got skipped and why. Nothing about the existing flow is half-committed.

03Notification emails

Each user gets a short email when their card is created: subject "Your Vinc card is ready at ", body with a single View your card → button that deep-links to the new vCard form. They sign in with the Odoo password they already use; if they're already logged in the link drops them straight onto the card.

The template is a regular Odoo mail.template (look for Vinc — Bulk Onboarding Invitation in Settings → Technical → Email Templates). See Email Automations & Digests for the full template-editing workflow.

04Troubleshooting common rows

Per-row issues bubble up in the batch's error log after submit, the wizard keeps going, and unmatched rows don't half-commit. Common reasons a row fails:

  • No Odoo user found for — the email doesn't match any res.users.login. Add the user under Settings → Users & Companies → Users first, then re-upload.
  • Duplicate slug — two rows resolved to the same website_slug. Fix one or supply explicit slugs.
  • Duplicate email within the upload — Vinc dedupes within the file before insert.
  • Slug collision with an existing card — pre-existing card has the same slug. Reassign.
  • Invalid email — failed format validation. Fix or remove.
Bulk uploads can legitimately seed a second card for a user who already has one (different role, different audience, different show). If you'd rather not, leave those rows out of the CSV.
There's no hard row limit, but in practice keep batches under ~500 rows so the notification-email queue doesn't backlog. For larger rollouts, split into multiple uploads and stagger them.