Skip to main content
The Vitally integration keeps your customer accounts in sync and lets you automate trait updates using custom JavaScript triggered by Vitally Playbooks.

Connect

1

Add the connection

Go to Settings → Connections, click Add Connection, and select Vitally. Enter your Vitally API credentials.
2

Sync

Click Sync Now to pull accounts into Zudo. Syncs also run on a schedule.

Pause Vitally

To stop Zudo talking to Vitally without disconnecting it, an admin can pause it: open Settings → Connections, expand Vitally, and choose Pause. The card then shows Paused and since when. While Vitally is paused:
  • Zudo doesn’t sync accounts, contacts, traits, notes or tasks from Vitally. Sync Now is hidden, and an account can’t be refreshed from Vitally on its own.
  • Zudo doesn’t write requests, meeting summaries, notes or tasks to Vitally, or delete anything there.
  • Webhook actions that Vitally playbooks call are skipped.
  • Nothing on your accounts changes. They keep the values Vitally last sent, so health scores, segments, lifecycle rules and MRR read the same traits they did before.
  • Custom Account Traits lists the traits already chosen, and you can still switch them off. The Workspace settings can’t be changed until you resume, because they’re read from Vitally.
  • Linking a meeting to an account still works, and so do links into Vitally from requests, meetings and accounts.
To resume, choose Resume on the same card. Zudo syncs Vitally straight away and reconciles notes and tasks, then sends Vitally what it missed: the meeting summaries recorded or refreshed while it was paused, and, when Write to is on, an object for each request linked to an account while it was paused. Up to 200 of each are sent on one resume. A note or task deleted in Zudo while Vitally was paused stays in Vitally.

What syncs

  • Accounts — name, MRR, and standard fields
  • Contacts — users associated with each account, including their lastSeenTimestamp (used for the Contact Activity health score factor)
  • Account traits — choose which custom traits to import from the Custom Account Traits panel on the connection card
  • Custom objects — additional Vitally data associated with accounts
For a churned or ignored account, the sync keeps the account and its traits up to date but skips its contacts, notes and tasks. See what pauses for churned and ignored accounts.
The sync fetches all pages of data from Vitally automatically, so even large account lists are fully imported.

When the account or contact is already in Zudo

Product events from Segment or PostHog, or someone adding a record by hand, can bring a customer or a person into Zudo before the Vitally sync does. The sync links to what’s already there instead of adding a second copy:
  • An account with the same external ID, and no Vitally link yet, takes the Vitally account’s link. From then on the sync updates it like any other Vitally account.
  • A contact with the same email (matched regardless of capitalization) and no Vitally link yet takes the Vitally user’s link. One on the same account is preferred over one elsewhere in your organization. Its last-seen time only ever moves forward, whichever source saw the person more recently.

Workspace settings

Zudo writes back to Vitally in two places: requests become instances of a custom object, and meeting summaries become instances of another. Tell it which ones, and who to write as, under Settings → Connections → Vitally. A status line at the top of the section lists what is still missing, so a half-configured connection is visible without saving anything.
Pick a team member under Zudo writes as before using request or meeting sync. Vitally accepts objects without an owner, but they arrive unassigned and are easy to lose, so Zudo asks for one.
The workspace itself is read from your API URL, so there is nothing to enter for it. EU workspaces share one API host with no workspace in it, so those get a Subdomain field to fill in. Paste-in fields exist because Vitally’s API does not expose the ids behind its hub, view and table URLs, and a custom object’s id in a URL is not the same as its id over the API. Opening the page and copying the address is the only way to get them.

Meetings

Meeting summaries are written as custom objects rather than as native Vitally meetings. Meetings created over Vitally’s API are not linked to an account — only Vitally’s own calendar sync does that — so a native meeting would appear attached to nobody.

Webhook actions

Webhook actions let you run custom JavaScript when a Vitally Playbook fires. Use them to automatically update account traits — advance a renewal date, stamp a trait with today’s date, or conditionally set values based on account state. For a full walkthrough of the JavaScript sandbox, helper functions, and code examples, see Webhook Actions.

Quick setup

  1. Go to Settings → Connections, expand your Vitally connection, and click + Add Action under Playbook Webhook Actions
  2. Name the action, write your JavaScript, and save
  3. Copy the unique webhook URL from the action card
  4. In Vitally, add a Webhook step to your Playbook and paste the URL
Each action gets a unique URL. When the Playbook fires, Vitally POSTs to Zudo, your script runs, and traits are updated automatically.