Docs
Ctrl K
CRMVINSI CRMVINSI FLOWVINSI ENGAGEAdminData & Automation

Data & Automation

Import and manage CRM data, and automate workflows across your team.

Created April 1, 2026

Updated: September 17, 2026

Overview

Data & Automation gives you the tools to move data in and out of the CRM at scale, build automated workflows, run email campaigns, and monitor email health across your team.

Open it from CRM → Admin and scroll to the Data & Automation section (subtitle: Import, manage CRM data and automate workflows). Each card opens in a slide-up panel over the admin grid — close it with the round X in the corner. The Search settings... box above the grid filters cards by title and description.

Tip: every panel has a direct link. Add ?panel= and the panel name to the admin URL — for example /crm/admin?panel=import-contacts. Valid names are workflows, email-campaigns, reports, email-reports, import-contacts, bulk-assign, bulk-delete, unsubscribe, website-visitors, and dnc-registry.

Who Can Use These Cards

Organization admins and owners can use every card. Everyone else needs the matching permission, granted per member in Team Settings → CRM Team. Read lets a member open the card; Write lets them change something.

CardPermission nameWrite permission controls
WorkflowsWorkflowsThe New Workflow button
Email CampaignsEmail CampaignsThe New Campaign button
ReportsReports—
Email ReportsEmail Reports—
Import ContactsImport ContactsThe Choose CSV File button
Bulk AssignBulk AssignThe whole panel, including the contact list
Bulk DeleteBulk DeleteThe whole panel, including the contact list
Business CardBusiness Card—
Unsubscribe ManagementUnsubscribe ManagementThe Add Unsubscribe button
Website VisitorsNone — visible to anyone who can open the section—
Do Not Call RegistryNone — visible to anyone who can open the section—

The whole section is also behind a parent Data Automation permission. If a member can't see the section at all, that's the one to grant first.

Workflows

Build drag-and-drop automations triggered by contact, deal, and order events. A workflow watches for one event in the CRM, optionally checks a few conditions, and then does things for you — change a lead status, assign an owner, send an email or SMS, open a ticket, create an activity, and so on. Use it to stop asking people to remember manual follow-up steps.

Workflows is the only card that takes over the full admin screen instead of opening a slide-up panel. The list screen is titled CRM Workflow Automator (Create automations that trigger when contacts, deals, or orders change) and has a Back to CRM Admin link at the top left.

Create a Workflow

  1. Open CRM → Admin → Data & Automation → Workflows.
  2. Click New Workflow. If you don't see the button, ask an admin for write access to Workflows. On an empty list you'll see: No workflows yet. Create one to automate CRM actions like assigning owners, changing statuses, and sending emails.
  3. In the New CRM Workflow window, type a Workflow Name (required) — the placeholder suggests e.g. Auto-assign new leads.
  4. Pick a Trigger Source: Native CRM or Custom Objects. Custom Objects is greyed out until your organization has at least one custom object (see CRM Configuration).
  5. Choose the Entity (Contact, Company, Deal, Order, or AI Phone Agent — or one of your custom objects) and then the Event. The events offered depend on the entity; see the Triggers table.
  6. Optionally add a Description (What does this workflow do?) so other admins know what it's for.
  7. Click Create Workflow. You'll see Workflow created and drop straight into the builder. Leaving out the name or trigger shows Name and trigger are required.
New workflows are live immediately. There is no draft state — a workflow is created as Active. Until you wire it up it has nothing to do, but the moment you save a trigger connected to an action it starts running against real records. If you want to build it quietly, click Deactivate first and turn it back on when you're finished.

Build the Flow

The builder has three parts: the Nodes palette on the left (collapsible with the chevron), the canvas in the middle, and a Configure Node panel that slides in on the right when you select a node.

  1. Drag the trigger from the Triggers group onto the canvas. Only the trigger you chose at creation is listed, and once it's placed it gets a tick and can't be dragged again. Dropping a second trigger shows Only one trigger node allowed per workflow.
  2. Drag in the Conditions and Actions you need, plus an End node if you want the branch to stop explicitly.
  3. Connect nodes by dragging from a node's right-hand handle to the next node's left-hand handle. Condition nodes have two outputs — YES (green, upper) and NO (red, lower). Each output can feed only one connection; a second attempt shows This output is already connected. Hover a connection and click the red ✕ to remove it.
  4. Click a node to open Configure Node. Every node has a Title and an optional Description (Optional note), followed by settings specific to that node type. Delete Node at the bottom removes it and its connections.
  5. Use Fit View in the header (Fit all nodes in view) to re-centre a large diagram.
  6. Click Save. You'll see Workflow saved; a failure shows Failed to save.
Renaming a node's Title is safe — it only changes the label on the canvas, not which action runs. Use it to say what this step is for, and put longer notes in the Description field.

Triggers

Every workflow has exactly one trigger, chosen when you create it and fixed afterwards. To change a trigger you create a new workflow.

EntityEventFires when
ContactRecord is createdA new contact is created.
ContactRecord is updatedA contact is edited — but only when no more specific event applies. A lead-status or disposition change fires that event instead, not this one.
ContactLead status changesThe contact's lead status moves to a different value.
ContactDisposition changesThe contact's call disposition changes.
ContactCustom field changesA custom field on the contact gets a new value.
CompanyCustom field changesA custom field on the company gets a new value. This is the only company event available.
DealRecord is createdA new deal is created.
DealStage changesA deal moves to a different pipeline stage.
OrderRecord is createdA new order (engagement) is created.
AI Phone AgentAfter callAn AI phone agent call has ended and its results are available.
Custom objectRecord is created / Record is updatedA record of that custom object is created or updated.

The trigger node itself has no settings beyond Title and Description — there is nothing to configure on it.

Conditions

A condition checks one field and splits the flow into a YES branch and a NO branch. The palette only offers the conditions that make sense for your trigger, so the list you see is shorter than the full set below.

Condition nodeChecksShown for
Check Lead StatusLead statusContact, deal, order and call triggers
Check Contact TypeContact typeContact, deal, order and call triggers
Check SourceContact sourceContact, deal, order and call triggers
Check DispositionContact dispositionContact, deal, order and call triggers
Check CompanyCompany nameContact, deal, order and call triggers
Check FieldAny one contact field you pickContact, deal, order and call triggers
Check Deal StageDeal stageContact, deal and order triggers
Check Deal AmountDeal valueContact, deal and order triggers
Check PipelinePipelineContact, deal and order triggers
Check Call DispositionThe disposition the AI agent set on the callAI Phone Agent trigger only
Check Call SummaryText of the call summaryAI Phone Agent trigger only
Check Transferred ToWhere the call was transferredAI Phone Agent trigger only
Check Custom FieldA custom field on the contact or companyThe two custom field changes triggers only
Check Object FieldA field on the custom object recordCustom object triggers only

Each condition has three settings:

SettingDetails
FieldLocked to the node type and shown greyed out, except on Check Field, where you choose from Lead Status, Contact Type, Source, Disposition, Deal Stage, Deal Amount, Pipeline, Company, Email, Phone, or Industry. Check Custom Field and Check Object Field add their own field picker instead (Select custom field... / Select field...).
OperatorDefaults to equals. Options: equals, does not equal, contains, does not contain, is empty, is not empty. greater than and less than appear only when the field is Deal Amount. Text comparisons ignore upper/lower case.
ValueHidden for is empty and is not empty. Becomes a dropdown of your configured options for Lead Status, Source, Disposition, Pipeline and Industry; a Pipeline → Stage list for Deal Stage; lead / customer / partner / vendor / other for Contact Type; and a free-text or number box otherwise. Call Disposition lists the dispositions defined on your AI agents, or shows No dispositions found.
There is no AND / OR builder. One condition node tests one field. To require two things, chain condition nodes — feed the first node's YES output into the second node. A condition that is missing its field or operator is treated as passing, so always fill both in.

Actions

Actions are the work the workflow does. Drag them from the Actions group.

ActionSettings
Set Lead StatusLead Status — one of your configured lead statuses.
Set DispositionDisposition — one of your configured dispositions.
Set Contact TypeContact Type — lead, customer, partner, vendor, or other.
Assign OwnerTeam Member — pick from Select member... and the member list.
Set Deal StageDeal Stage — listed as Pipeline → Stage.
Create DealDeal Name (placeholder Use {{contact_name}} for dynamic), Pipeline, and Amount (number, placeholder 0.00).
Send EmailEmail Template (or Custom (no template)), To (only without a template — accepts contact, owner, or an address), Subject, and Body in a rich editor. Choosing a template sends to the contact and keeps using the template's latest content.
Send SMSSMS Template (or Custom), From Phone Number, To — Phone (Primary), Phone 2, or Phone 3 — and Message. Supports {{name}}, {{email}}, and {{phone}}.
Make Phone CallAI Agent (required) — one of your phone agents — Call To (contact, the default, dials the contact's primary number; anything else is dialled as typed), and Call Purpose, which is passed to the agent as context. The call is placed as soon as the workflow reaches this node.
WaitDelay (a number) and Unit (minutes, hours, or days). Everything after this node is put on hold and picked up once the delay is over — see the note below.
Add NoteNote Content — free text added to the contact.
Create TicketSubject (required), Description, Priority (Low, Medium — default, High, Urgent), Type (Incident — default, Request, Question, Problem), Assign To (default Unassigned, which means whoever triggered the workflow), and Due In (days) (No due date — default, 1, 2, 3, 5, 7, 14, 30, 60, 90).
Create ActivitySame fields as Create Ticket, plus two dynamic assignees: Lead Owner (whoever the contact is assigned to) and Workflow Trigger User (whoever triggered it). Left unassigned, the activity stays unassigned.
Set Object FieldCustom-object triggers only. Pick the Object Field and its New Value. On other triggers it shows This workflow trigger is not linked to a custom object.
EndNo settings. Marks the end of a branch.

Placeholders accepted in ticket and activity subjects and descriptions: {{contact_name}}, {{first_name}}, {{last_name}}, {{email}}, {{company}}, {{lead_status}}, {{deal_name}}, and {{deal_stage}}. SMS templates are managed in CRM Configuration → SMS Templates, email templates in Email Templates.

Activate, Rename, Delete

TaskHow
Turn a workflow on or offFlip the switch on the workflow's row in the list, or click Activate / Deactivate in the builder header. The pill next to the name reads Active or Inactive. You'll see Workflow activated or Workflow deactivated.
RenameOpen the workflow and click the pencil next to its name (Rename workflow). Press Enter to save, Escape to cancel. Confirms with Workflow renamed.
DeleteClick the trash icon on the row, or Delete in the builder header. The Delete Workflow window asks Delete this workflow? and warns This cannot be undone. Any automations will stop running. Confirm with Delete.
See how often it runsThe list row shows the trigger, the node and connection counts, a run count once it has fired at least once, and the created date. Deactivated workflows lose the coloured bar on the left of the row.

Workflow Gotchas

  • No test mode. There is no simulate or dry-run button. To check a workflow, activate it and perform the real action on a throwaway record.
  • No run log. Only the run counter on the list row tells you anything, and it only counts runs that actually performed at least one action. A workflow whose conditions never match shows nothing.
  • Nothing warns you about a half-built flow. A trigger with no connected actions saves and activates happily.
  • One trigger, one edge per output. Branch by using a condition's YES and NO outputs, not by dragging two connections off the same handle.
  • Each node runs at most once per trigger. If two branches converge on the same node, that node fires on whichever branch reaches it first.
  • Contact updates are specific. If you want to catch a lead-status change, use the Lead status changes trigger — Record is updated will not fire for it.
  • Rich HTML templates are preview-only. If an email template contains tables or inline styles, the Body field in the builder shows a read-only (Template Preview) instead of an editor. Edit the template itself in Email Templates.
  • A Wait pauses only its own branch. Everything after the Wait node is stored and resumed once the delay is over; other branches keep running immediately. If the workflow is switched off before the delay elapses, the paused steps are dropped.
  • Send Email and Send SMS need delivery set up. Email uses your SMTP settings in Team Settings → Email Settings; SMS needs a phone number your organization owns.

Email Campaigns

Send bulk emails using CSV or CRM contacts with email verification and send rate controls. Use this for one-off blasts and nurture sends to a list, as opposed to the one-to-one email you send from a contact record.

Building a campaign? The five-step wizard — recipients, compose, send settings, review, sending — is covered end to end in the Email Campaign step-by-step guide. This section covers the admin card itself.
  1. Open Data & Automation → Email Campaigns. The card opens on Campaign History, not the wizard.
  2. Click New Campaign at the bottom of the panel to start the wizard. The button is hidden while you are inside the wizard, and hidden entirely without write access.
  3. Use Campaign History to come back to the list from any step of the wizard.
  4. Click Refresh to re-poll a campaign that is still sending.

Every campaign in the history list carries a status and a set of actions:

StatusMeaning
ScheduledQueued for a future date and time.
VerifyingAddresses are being checked before the first email goes out.
PendingAccepted and waiting for the sender to pick it up.
SendingEmails are going out at your configured rate.
PausedStopped by you. Two variants appear on their own: Paused — high bounce and Paused — worker down.
CompletedEvery recipient has been processed.
CancelledStopped before finishing and not resumable.
ErrorThe campaign failed. Check your SMTP settings first.
ActionWhat it does
Live ViewOpens the progress view for a campaign that is sending.
Pause / ResumeStops and restarts sending. Confirms with Campaign paused / Campaign resumed.
ReactivateAsks Restart sending for this campaign? then reports Campaign reactivated — sending will resume shortly.
Cancel CampaignAsks Are you sure you want to cancel this campaign? Cancelling cannot be undone.
EditReopens the campaign in the wizard.
DuplicateOffers Duplicate with same recipients or Duplicate — choose new recipients.
DeleteTitled Delete Campaign with the warning This cannot be undone.

Each row also reports Recipients, Sent, Failed, Skipped, Opened, Clicked, Bounced, and Unopened. Click into the numbers to see which addresses were affected and why a recipient was skipped — reasons include Unsubscribed, Already sent in last 24h, Duplicate in list, No mail server (bad/typo domain), and Bounced in a recent campaign.

Gotchas. Campaigns need SMTP configured — without it you'll see No custom SMTP settings configured. Go to Email Settings to set up your SMTP server. Unsubscribed contacts and addresses that bounced in the last six months are skipped automatically, so your Sent count will be lower than your Recipients count. Sending continues in the background — you can safely close the panel.

Reports

View 20+ CRM reports with charts across contacts, deals, orders, calls and more. This is the read-only analytics view over your whole CRM — use it for pipeline reviews, activity checks, and per-rep performance. The full catalogue of charts is listed on the Admin Reports page.

  1. Open Data & Automation → Reports. The screen is titled CRM Reports and has a ← Back to CRM Admin link.
  2. Narrow to one person with the team-member list, which defaults to All Team Members.
  3. Pick a date range, then click Refresh if you want to re-pull the numbers.
  4. Click any summary tile or chart segment to drill into the underlying records.
  5. In a drill-down, click Export CSV to download those rows.
ControlOptions and defaults
Team memberAll Team Members (default), or one member.
Date rangeToday, Last 7 Days, Last 30 Days, Last 90 Days, This Year, All Time, Custom.
Custom rangeChoose Date Range (from and to) or Specific Date. The end date can't be earlier than the start date.
Summary tilesTotal Contacts, Total Companies, Total Deals, Deal Value, Total Engagements, Revenue, Appointments, Total Calls. All clickable.
SectionsTeam Member Performance, Calls, Contacts, Companies, Deals, Engagements.
ExportExport CSV, available inside a drill-down only.
Gotcha. A chart with nothing to show renders an empty-state placeholder rather than disappearing, so a blank panel usually means your date range or team-member filter is too narrow — not that the data is missing.

Email Reports

View email sending analytics, volume trends, and delivery insights. Email Reports is the health check on your sending reputation: it shows how much mail your team sends, how much of it lands, and who is getting hit repeatedly. Watch it if you care about not being blocked by the big mailbox providers.

  1. Open Data & Automation → Email Reports. The panel is titled Email Reports (Email sending analytics and delivery insights).
  2. Choose a period from the date-range list. It opens on Last 30 days.
  3. Read the KPI cards across the top, then the charts and lists below them.
  4. Click View details → on any KPI card, or a bar or slice on a chart, to see the individual emails behind that number.
  5. In a drill-down, use Back to Reports to return.
Control or metricDetails
Date rangeToday, Last 7 days, Last 30 days (default), Last 90 days, Last year.
Total SentAll emails sent in the period, with a daily average underneath.
This WeekCurrent week against the previous week, as a percentage.
Open RatePercentage opened, with the raw x of y opened count.
Click RatePercentage clicked, with the raw x of y clicked count.
Bounce RatePercentage that failed to deliver, plus the bounced count. The number to watch.
Unique RecipientsDistinct contacts mailed, shown against your total contact count.
UnsubscribedOpt-outs in the period plus an all-time figure.
ChartsDaily Email Volume, Emails by Source, Sending Activity by Hour.
ListsTop Recipients, Top Senders (Team), and Recent Emails with a View All Emails link.
Drill-down columnsSubject, To, Source, Sent By, Status, Date. Status badges are Delivered, Opened, and Bounced.
Gotchas. Email Reports has no export — to download rows, use the Export CSV button in Reports instead. A rising bounce rate paired with a growing unsubscribe count is the earliest signal that your domain is heading for trouble; clean the list from Unsubscribe Management before you send again.

Import Contacts

Bulk import leads from a CSV file and assign them to team members. The wizard runs in six stages: Upload → Map Columns → Enrich → Assign → Importing → Done.

  1. Open Data & Automation → Import Contacts and click Choose CSV File, or click Download sample template first to get a correctly-headed file. The file must have a header row and at least one data row, otherwise you'll see CSV must have at least a header row and one data row.
  2. On Map Columns, check the automatic mapping. Each CRM field has a dropdown over your CSV headers; set anything you don't want to bring across to — Skip this field —. Use Preview (first 3 rows) to confirm the columns line up, and Start Over if the file was wrong.
  3. Tick Skip Enrichment if you want your CSV used exactly as written (no lookups, no fallback fill). Then click Next: Enrich — or Next: Assign if you skipped enrichment.
  4. On Enrich, VINSI looks your company names up on Google (Looking up companies on Google...) and reports Found N of M companies on Google. Toggle which ones to enrich. Turn off any match you don't trust, then click Next: Assign.
  5. On Assign & Defaults, set the owner, the default lead status and source, and the Duplicate check. Read the warning box — its text changes with the duplicate rule you pick. Confirm the count in the Ready to import tile.
  6. Click Start Import and leave the panel open. Progress shows as N of M processed.
  7. On Import Complete, review Contacts Imported, Companies Created, Skipped and Errors. Click the imported count to list the new contacts. Finish with Import Another File or Back to CRM Admin.
Field or optionDetails
CSV columnsFirst Name, Last Name, Title, Email, Phone, Phone Ext, Phone 2, Phone 2 Ext, Phone 3, Phone 3 Ext, Company, Source, Lead Status, Notes, Street, City, State, Zip, Review Rating, Review Count, Website, Industry. Only Email is expected; every column is mapped by hand in step 2.
File type.csv only.
Skip EnrichmentOff by default. When on, the Enrich stage is skipped entirely.
Assign to Team MemberDefaults to — Unassigned —. Applies to every row in the batch.
Default Lead StatusYour configured lead statuses. Used only where the CSV row has no status of its own.
Default SourceYour configured sources. Used only where the CSV row has no source of its own.
Duplicate checkBy Email (default) · By Name (first + last) · By Company name · By Phone · Skip duplicate check. Matching rows are skipped, not merged.
Imported record typeEvery imported contact is created as a lead.

Do not map a combined "Full Name" column to First Name.

If your CSV has a single column containing both first and last name together, do not map it to the First Name field — the whole name will be stored as the first name. You have two options:

  • Use the VINSI CSV Formatter Tool to split the column into First Name and Last Name before importing.
  • Contact VINSI Sales for help preparing the file.
Gotchas. The file is parsed in your browser, so keep batches to a few thousand rows and split anything larger — very big files make the tab slow. Save your export as plain comma-separated CSV: values containing line breaks, escaped quotes, or semicolon separators will not parse correctly. Rows with no email are still imported, using a placeholder address. A row with a company but no person's name becomes a contact named after the company. Check that your Default Lead Status and Default Source dropdowns are actually showing a selected value before you start — if your organization has renamed those options in CRM Configuration, pick them explicitly. Imported contacts land in CRM → Contacts.

Bulk Assign

Reassign multiple contacts to a different team member at once. Use it when someone leaves, when you rebalance territories, or to hand a freshly imported batch to a rep. The panel is titled Bulk Assign Contacts.

  1. Open Data & Automation → Bulk Assign. Contacts load automatically — you'll see Loading N of M contacts… while that happens.
  2. Narrow the list with the filter bar. Changing any filter clears your current selection, so filter first and select second.
  3. Select contacts: click rows, use the header checkbox, or pick a preset from Select Amount.
  4. At the bottom, open the — Select team member — list and choose the new owner.
  5. Click Assign. The button shows the count, for example Assign (37).
  6. Watch the progress bar. When it finishes you'll see a N contacts reassigned confirmation, the selection clears, and the list reloads.
ControlOptions and defaults
SearchPlaceholder Name, email, company... — matches name, email address, or company.
Lead StatusAll (default), plus your configured lead statuses.
TypeAll (default), Lead, Customer, Archived.
DispositionAll (default), plus your configured dispositions.
Assigned ToAll members (default), Unassigned, or a specific member.
Select AmountNone (default), 10, 50, 100, 200, 400, 1000, All (count), or Custom with a number box (minimum 1).
Rows per page50, fixed.
Maximum contacts loaded50,000 per organization.
Gotchas. There is no confirmation step — Assign applies immediately. Selection and the header checkbox cover the whole filtered set, not just the 50 rows you can see, so always check the N of M selected counter before you click. On organizations with more than 50,000 contacts the list stops loading at that ceiling without warning; filter harder and work in batches.

Bulk Delete

Select and permanently remove multiple contacts at once. The panel is titled Bulk Delete Contacts and warns in red: This action cannot be undone. Use it to clear out a bad import or a stale list — not as a general tidy-up tool.

  1. Open Data & Automation → Bulk Delete. Contacts load automatically.
  2. Filter and select exactly as in Bulk Assign — the filter bar, Select Amount list, and 50-row pages are identical.
  3. Click the red Delete button at the bottom; it shows the count, for example Delete (37).
  4. A confirmation banner appears in the panel asking Permanently delete N contacts?. Click Yes, delete to go ahead, or Cancel to back out. Nothing needs to be typed — it is two clicks in total.
  5. Read the result. It reports what happened in one line, for example 120 contacts deleted · 4 skipped (3 with deals, 1 from client companies). If nothing could be deleted you get a warning instead of a success message.
PointDetails
Reversible?No. Deleted contacts are gone, along with their activities, emails, and tags.
Contacts with a dealSkipped, and counted as with deals in the result.
Contacts on a client companySkipped, and counted as from client companies in the result.
ConfirmationAn in-panel banner with Yes, delete and Cancel. No typed confirmation.
Maximum contacts loaded50,000 per organization, same as Bulk Assign.
Gotchas. If your selection is entirely deals-linked or client-company contacts, the delete completes but removes nothing — the message will show a skip count and no deletions. To remove one of those contacts, detach the deal or change the company type first. As with Bulk Assign, the selection covers the whole filtered set, not the visible page.

Business Card

Scan a business card image to create a contact and company. Photograph a card at an event, upload it, and VINSI reads the details for you to check before saving. Unlike the other cards this one opens a window titled Create from Business Card rather than a panel.

  1. Open Data & Automation → Business Card.
  2. Under Upload a photo of the business card (We'll read the contact and company details for you to review.), choose an image. A preview appears once it is loaded.
  3. Click Scan Card. The button changes to Reading… while the card is processed.
  4. Check the Contact and Company sections and correct anything that was misread. If VINSI finds matching businesses it offers them under Found on Google — pick one to fill verified details:; clicking one overwrites the company fields with the verified data.
  5. Click Create. On success you'll see Contact and company created, or a contact-only confirmation if the company already existed.
Field or limitDetails
Contact fieldsFirst Name (required), Last Name, Job Title, Email, Phone, Ext.
Company fieldsCompany Name, Website, Industry, Company Email, Company Phone, Address, City, State, Zip, Country.
Accepted image typesPNG, JPG, WEBP, HEIC. One file at a time.
Maximum file size10 MB. Large photos are automatically shrunk to 1600 px on the long edge before upload.
New contact defaultsLead status New, type lead, source Business Card, owned by you.
New company defaultsType prospect, owned by you. The new contact becomes its primary contact.
Gotchas. Existing companies are matched on exact name first, then on the website domain — if neither matches, a second company record is created, so tidy the company name before saving. A contact whose email address already exists in your CRM is rejected; open the existing contact in CRM → Contacts and update it instead. Always re-read the scanned phone number and email before clicking Create: a misread digit is much harder to spot later.

Unsubscribe Management

View unsubscribed contacts and re-subscribe contacts. This is the suppression list your campaigns and workflow emails check before every send. It holds both people who opted out and addresses that bounced recently, so it is the first place to look when someone says "I never got your email".

The list header reads Suppressed recipients (count) and explains what qualifies: addresses skipped on send — unsubscribed contacts, and anything that bounced in the last six months, including CSV-only recipients that aren't CRM contacts.

Find someone

  1. Open Data & Automation → Unsubscribe Management. Page 1 loads automatically.
  2. Type into the box (placeholder Search name, email, company...) and press Enter or click Search.
  3. Page through with « First, ‹ Prev, Next ›, and Last ».

Put someone back on the list

  1. Find the person and click the green Re-subscribe button on their row.
  2. The Re-subscribe Contact window asks Re-subscribe [name]? They will start receiving emails again. Confirm with Re-subscribe.
  3. You'll see Contact re-subscribed and the row disappears from the list. This clears both the opt-out and any bounce record.

Suppress an address by hand

  1. Click Add Unsubscribe at the bottom of the panel.
  2. Type the address into Contact email address (placeholder name@example.com) and press Enter or click Add Unsubscribe.
  3. If the address belongs to an existing contact it is flagged. If it is unknown, a stub record is created so campaigns still honour it. Already-suppressed addresses report This contact is already unsubscribed.

Clear a bounce without changing the opt-out

  1. Click Re-enable a bounced email in the panel header.
  2. Enter the address under Email address and click Re-enable.
  3. The result reports how many bounces were cleared, or tells you there was no recent bounce or unsubscribe on record for that address.
Row elementDetails
NameThe contact's full name, or a dash when it isn't known — common for CSV-only recipients.
Email · CompanyAddress and company on the second line.
Unsubscribed [date]Red badge. The person clicked the unsubscribe link, or an admin added them.
Bounced [date]Warning badge marked Hard (red) or Soft (amber), with the bounce reason on hover.
Rows per page25, fixed. Pagination appears once there are more than 25 entries.
Empty statesNo contacts have unsubscribed. or No unsubscribed contacts match "[search]".
Gotchas. Re-subscribing someone who genuinely opted out is a compliance risk — only do it when they have asked you to. Bounce suppression is separate from unsubscribe: an address can be skipped purely because it bounced, which is what Re-enable a bounced email is for. The unsubscribe link itself is generated automatically in each outgoing email footer; there is nothing to copy from this panel.

Website Visitors

Track anonymous visitors on your marketing site — city, ISP, pages viewed. See who's browsing and reach out. A small script on your site reports each session back to VINSI, so you can spot companies researching you before they ever fill in a form. Anyone who can open Data & Automation can use this card.

Set up tracking

  1. Open Data & Automation → Website Visitors and expand Tracking snippet.
  2. Fill in Allowed domains — comma or space separated, for example vinsi.ai, www.vinsi.ai. Leave it blank to accept any origin.
  3. Click Save & generate key. You'll see Tracking key generated and a green Active chip.
  4. Click Copy snippet and paste it just before the closing </body> tag on every page of your marketing site.
  5. Visit your own site once, then come back and click the refresh button — the session should appear.

Work the list

  1. Pick a period and search for a city, ISP, IP address, page URL, referrer, or UTM value.
  2. Click Details on a row to see the page history and user agent; click Hide to collapse it.
  3. Click Edit to open Identify this visitor and record what you know — business name, contact name, city, state, and notes. Click Save. Your entry applies to every session from that IP address and always overrides the automatic guess.
  4. Click Add to CRM to create a company record from the row. Once linked the button becomes a green In CRM link that opens the company.
  5. Use the trash button to remove a row. It asks Delete this visitor record? and cannot be undone.
Control or fieldOptions and defaults
Allowed domainsComma or space separated. Blank accepts any origin.
Tracking key buttonSave & generate key the first time, Save & rotate key afterwards.
Date filterLast 24 hours, Last 7 days, Last 30 days (default), Last 90 days, All time.
Rows per page10 (default), 25, 50, 100.
Visitor nameYour manual entry first, then the Google match, then the ISP or organization, then the raw IP, then Unknown visitor.
Row chipsPage count, Manual when you identified it by hand, and the industry when known.
Details panelEntry page, referrer, UTM values, page history (last 20 pages with times), and user agent.
Identify fieldsBusiness name, Contact name, City, State, Notes — all free text.
Gotchas. Save & rotate key invalidates the old key — the snippet already on your site stops reporting until you paste the new one, so always re-copy the snippet after rotating. Traffic from cloud and datacenter networks is almost always crawlers, so those rows are hidden from the list and reported as Hiding N bot/cloud rows on this page; they still count toward the total, which is why a page can look shorter than the count suggests. Identifying a row by hand brings it back into view. This card tracks anonymous sessions only — it is not a form-capture tool.

Do Not Call Registry

Numbers blocked from all outbound batch and manual dialing. "Do Not Call" dispositions and the AI's mid-call add feed this list automatically. Anyone who can open Data & Automation can use this card.

Add a number

  1. Open Data & Automation → Do Not Call Registry.
  2. Under Add a number, type the Phone number (placeholder (555) 555-1234) and optional Notes.
  3. Click Add. You'll see Added to DNC list, or Already on the DNC list if it was already blocked. Fewer than ten digits gives Enter at least 10 digits.

Import a list

  1. Expand Bulk import from CSV.
  2. Paste one phone number per line, or CSV rows whose first column is the phone number — extra columns are ignored.
  3. Click Import. The result is reported as a summary, for example 240 added · 12 already listed · 3 invalid.

Unblock a number

  1. Find it with the search box (Search by number or notes…).
  2. Click the red trash button (Remove from DNC list).
  3. Confirm the prompt: Remove [number] from the DNC list? This number will be dialable again on future batches. There is no undo.
Field, column or limitDetails
Phone numberRequired. Minimum 10 digits. Formatting is ignored — spaces, dashes, brackets and a leading +1 all match.
NotesOptional, up to 500 characters.
CSV importPaste-only — there is no file picker. Duplicates and numbers under 10 digits are skipped.
Phone columnShown as +1 (555) 555-1234 or (555) 555-1234.
Source columnManual (added here), CSV Import, Disposition, AI Agent, or API.
Notes columnYour note, the originating call reference, or a dash.
Added columnLocal date and time.
Rows per page25, 50 (default), 100, 250.

Numbers arrive on this list from four places:

  • Manual — added in this panel.
  • CSV Import — pasted into the bulk import box.
  • Disposition — saving a call with a disposition of do not call, dnc, remove me, or do not contact adds the number automatically.
  • AI Agent — an AI phone agent adds the number mid-call when the person asks not to be contacted again.
Outbound calls check this list before dialing. In Batch Calls, blocked rows are reported with their own DNC skipped status rather than as errors, and a DNC badge appears next to the number in the batch contact list.
Gotchas. Internal extension dialing deliberately bypasses the registry, so a coworker's extension is never blocked. Very large pastes are processed one line at a time and can time out — split anything over a few thousand numbers. Removing a number takes effect on future batches, not on a batch that is already running.