> ## Documentation Index
> Fetch the complete documentation index at: https://docs.parsalink.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Import & Export

> Bring contacts and leads into ParsaLink from CSV files, business card scans, document uploads, and bulk ZIP archives — and export your data at any time.

<div
  style={{
background: "linear-gradient(135deg, #143D4E 0%, #1C758A 55%, #30C8CA 100%)",
borderRadius: "24px",
padding: "28px",
marginBottom: "28px",
color: "#FFFFFF",
boxShadow: "0 20px 50px rgba(20, 61, 78, 0.22)",
position: "relative",
overflow: "hidden",
border: "1px solid rgba(255,255,255,0.08)"
}}
>
  <div
    style={{
position: "absolute",
top: "-36px",
right: "-36px",
width: "170px",
height: "170px",
background: "rgba(255,255,255,0.08)",
borderRadius: "999px"
}}
  />

  <div
    style={{
position: "absolute",
bottom: "-48px",
left: "-24px",
width: "130px",
height: "130px",
background: "rgba(255,255,255,0.06)",
borderRadius: "999px"
}}
  />

  <div
    style={{
  display: "inline-flex",
  alignItems: "center",
  background: "rgba(255,255,255,0.14)",
  color: "#FFFFFF",
  padding: "7px 14px",
  borderRadius: "999px",
  fontSize: "12px",
  fontWeight: "700",
  marginBottom: "12px",
  letterSpacing: "0.08em",
  textTransform: "uppercase"
}}
  >
    IMPORT & EXPORT
  </div>

  <p style={{ margin: 0, fontSize: "16px", lineHeight: "1.9", maxWidth: "760px", color: "#FFFFFF" }}>
    Bring contacts and leads into ParsaLink from CSV files, business card scans, document uploads, and bulk ZIP archives — and export your data at any time.
  </p>
</div>

<div
  style={{ 
display: "inline-block",
color: "#1C758A",
fontSize: "12px",
fontWeight: "700",
marginBottom: "8px",
letterSpacing: "0.08em",
textTransform: "uppercase",
background: "rgba(28,117,138,0.08)",
padding: "6px 12px",
borderRadius: "999px",
border: "1px solid rgba(28,117,138,0.12)"
}}
>
  Overview
</div>

## Import Overview

<div
  className="bg-white dark:bg-black dark:border-white/10 dark:text-white [&_*]:dark:text-white"
  style={{
border: "1px solid #E7EAEC",
borderRadius: "18px",
padding: "20px",
marginBottom: "24px",
boxShadow: "0 14px 34px rgba(20, 61, 78, 0.05)"
}}
>
  ParsaLink offers several ways to bring contact and lead data into your CRM. You can import structured data from a spreadsheet, scan a business card, upload contact screenshots, or process a batch of files at once using a ZIP archive.

  To access the import tools, navigate to **CRM → Contacts** (or **Leads**) and click **Import**.
</div>

***

<div
  style={{ 
display: "inline-block",
color: "#1C758A",
fontSize: "12px",
fontWeight: "700",
marginBottom: "8px",
letterSpacing: "0.08em",
textTransform: "uppercase",
background: "rgba(28,117,138,0.08)",
padding: "6px 12px",
borderRadius: "999px",
border: "1px solid rgba(28,117,138,0.12)"
}}
>
  CSV Import
</div>

## CSV Import

<div
  className="bg-white dark:bg-black dark:border-white/10 dark:text-white [&_*]:dark:text-white dark:shadow-none"
  style={{
border: "1px solid #E3E8EA",
borderRadius: "22px",
padding: "18px",
marginBottom: "24px",
boxShadow: "0 14px 34px rgba(20, 61, 78, 0.04)"
}}
>
  CSV import is the primary way to bulk-import structured contact or lead data from another CRM, spreadsheet, or data export.

  <Steps>
    <Step title="Download the sample template">
      Click **Download Sample CSV** to get a template with the correct column headers for contacts or leads.
    </Step>

    <Step title="Fill in your data">
      Open the template in Excel, Google Sheets, or any CSV editor. Fill in your records — one row per contact or lead. Leave optional columns blank if you don't have the data.
    </Step>

    <Step title="Upload the file">
      Click **Upload CSV** and select your completed file. ParsaLink parses the file and shows you a column mapping screen.
    </Step>

    <Step title="Map fields">
      <div
        className="bg-white dark:bg-black dark:border-white/10 dark:text-white [&_*]:dark:text-white"
        style={{
    border: "1px solid #E7EAEC",
    borderRadius: "14px",
    padding: "12px",
    marginTop: "12px"
  }}
      >
        | Your Column | Maps To        |
        | ----------- | -------------- |
        | First Name  | First Name     |
        | Email       | Email Address  |
        | Company     | Account Name   |
        | Phone       | Phone Number   |
        | Title       | Job Title      |
        | Notes       | Internal Notes |
      </div>

      For each column in your CSV, select the corresponding CRM field. ParsaLink auto-maps common column names (e.g., "First Name," "Email," "Company") but you can adjust any mapping manually.

      Columns you don't map are ignored.
    </Step>

    <Step title="Select a source">
      Choose where these records came from using the **Source** dropdown (e.g., Trade Show, Website Form, Purchased List, Cold Outreach). This value is applied to all imported records and is useful for tracking lead quality by source.
    </Step>

    <Step title="Review and confirm">
      ParsaLink shows a preview of the first several rows with the field mapping applied. Review for any obvious errors before proceeding.
    </Step>

    <Step title="Handle duplicates">
      ParsaLink checks for existing records with the same email address. You can choose to:

      * **Skip duplicates** — Only import new records.
      * **Update existing** — Overwrite fields on matching records with the imported values.
      * **Import as new** — Create new records even if duplicates exist.
    </Step>

    <Step title="Run the import">
      Click **Import**. The job is queued and processed in the background — a live progress bar shows the row count as ParsaLink works through it. **You can safely close the import dialog or leave the page** while it runs; the job keeps going on the server.
    </Step>
  </Steps>
</div>

<Note>
  CSV imports run asynchronously. The import dialog polls the job every two seconds and surfaces a success / error count when it's done. Small files complete in a few seconds; larger files (thousands of rows) take minutes but never gateway-time-out the way the legacy synchronous import used to.
</Note>

<Warning>
  There is no automatic undo for a CSV import. If you notice errors after importing, you can use bulk delete to remove the imported batch, or correct records individually.
</Warning>

***

<div
  style={{
display: "inline-block",
color: "#1C758A",
fontSize: "12px",
fontWeight: "700",
marginBottom: "8px",
letterSpacing: "0.08em",
textTransform: "uppercase",
background: "rgba(28,117,138,0.08)",
padding: "6px 12px",
borderRadius: "999px",
border: "1px solid rgba(28,117,138,0.12)"
}}
>
  Recent Imports
</div>

## Recent Imports Panel

<div
  className="bg-white dark:bg-black dark:border-white/10 dark:text-white [&_*]:dark:text-white"
  style={{
border: "1px solid #E7EAEC",
borderRadius: "18px",
padding: "20px",
marginBottom: "24px",
boxShadow: "0 14px 34px rgba(20, 61, 78, 0.05)"
}}
>
  The upload dialog shows the **five most recent imports for your workspace** below the file picker. Each row surfaces the filename, current status (queued, processing, complete, failed), the rows-imported / errors counters once it's done, and how long ago it finished.

  That means you can:

  * Confirm an import that you started earlier finished cleanly.
  * See what a teammate just uploaded without leaving the dialog.
  * Spot an import stuck in *processing* and reach out to support with the filename.

  The panel auto-refreshes every 5 seconds while there's an active job, then goes quiet so it doesn't keep polling forever on an idle workspace.
</div>

***

<div
  style={{ 
display: "inline-block",
color: "#1C758A",
fontSize: "12px",
fontWeight: "700",
marginBottom: "8px",
letterSpacing: "0.08em",
textTransform: "uppercase",
background: "rgba(28,117,138,0.08)",
padding: "6px 12px",
borderRadius: "999px",
border: "1px solid rgba(28,117,138,0.12)"
}}
>
  Image & PDF
</div>

## Image and PDF Import

<div
  className="bg-white dark:bg-black dark:border-white/10 dark:text-white [&_*]:dark:text-white"
  style={{
border: "1px solid #E7EAEC",
borderRadius: "18px",
padding: "20px",
marginBottom: "24px",
boxShadow: "0 14px 34px rgba(20, 61, 78, 0.05)"
}}
>
  Use image or PDF import to extract contact information from:

  * **Business card photos** — Photograph a physical card using your device camera or upload an existing image.
  * **Contact screenshots** — Screenshots from LinkedIn, email signatures, or other sources.
  * **Scanned documents** — Printed contact sheets or directories scanned as PDFs.

  ParsaLink uses AI to extract name, email, phone, job title, and company from the image or document content and pre-fills the contact creation form. You can review and correct extracted fields before saving.

  **Supported formats:** JPG, PNG, HEIC, WEBP, PDF

  To use image import:

  1. Click **Import → Upload Image or PDF**.
  2. Select or photograph your file.
  3. Wait for AI extraction (typically a few seconds).
  4. Review the pre-filled contact fields and make any corrections.
  5. Select a **Source** for the contact.
  6. Click **Save Contact**.
</div>

***

<div
  style={{ 
display: "inline-block",
color: "#1C758A",
fontSize: "12px",
fontWeight: "700",
marginBottom: "8px",
letterSpacing: "0.08em",
textTransform: "uppercase",
background: "rgba(28,117,138,0.08)",
padding: "6px 12px",
borderRadius: "999px",
border: "1px solid rgba(28,117,138,0.12)"
}}
>
  Bulk Processing
</div>

## ZIP Import (Bulk File Processing)

<div
  className="bg-white dark:bg-black dark:border-white/10 dark:text-white [&_*]:dark:text-white dark:shadow-none"
  style={{
border: "1px solid #E3E8EA",
borderRadius: "22px",
padding: "18px",
marginBottom: "24px",
boxShadow: "0 14px 34px rgba(20, 61, 78, 0.04)"
}}
>
  <Steps>
    <Step title="Prepare your ZIP file">
      Collect all your image or PDF files into a single folder and compress it as a ZIP archive. Each file should represent one contact.
    </Step>

    <Step title="Upload the ZIP">
      Click **Import → Upload ZIP**. Select your archive. ParsaLink begins processing each file in the batch.
    </Step>

    <Step title="Review extracted contacts">
      As each file is processed, the extracted contact data is added to a review queue. You can accept, edit, or discard each extracted contact.
    </Step>

    <Step title="Confirm the import">
      Once you've reviewed the queue, click **Import All** to save the approved contacts to your CRM.
    </Step>
  </Steps>
</div>

<Note>
  ZIP import is ideal after trade shows or networking events where you've collected many business cards. Processing time depends on the number of files in the archive.
</Note>

***

<div
  style={{ 
display: "inline-block",
color: "#1C758A",
fontSize: "12px",
fontWeight: "700",
marginBottom: "8px",
letterSpacing: "0.08em",
textTransform: "uppercase",
background: "rgba(28,117,138,0.08)",
padding: "6px 12px",
borderRadius: "999px",
border: "1px solid rgba(28,117,138,0.12)"
}}
>
  Data Quality
</div>

## Duplicate Detection

<div
  className="bg-white dark:bg-black dark:border-white/10 dark:text-white [&_*]:dark:text-white"
  style={{
border: "1px solid #E7EAEC",
borderRadius: "18px",
padding: "20px",
marginBottom: "24px",
boxShadow: "0 14px 34px rgba(20, 61, 78, 0.05)"
}}
>
  ParsaLink checks for duplicate records during all import types. A duplicate is detected when an incoming record matches an existing contact or lead by **email address**.

  When a duplicate is found, you choose how to handle it on a per-import basis (skip, update, or import as new). After import, you can also use the **Merge Duplicate** tool on individual contact records to clean up any remaining duplicates.
</div>

***

<div
  style={{ 
display: "inline-block",
color: "#1C758A",
fontSize: "12px",
fontWeight: "700",
marginBottom: "8px",
letterSpacing: "0.08em",
textTransform: "uppercase",
background: "rgba(28,117,138,0.08)",
padding: "6px 12px",
borderRadius: "999px",
border: "1px solid rgba(28,117,138,0.12)"
}}
>
  Export
</div>

## Export Contacts to CSV

<div
  className="bg-white dark:bg-black dark:border-white/10 dark:text-white [&_*]:dark:text-white dark:shadow-none"
  style={{
border: "1px solid #E3E8EA",
borderRadius: "18px",
padding: "20px",
marginBottom: "20px",
boxShadow: "0 14px 34px rgba(20, 61, 78, 0.04)"
}}
>
  To export your contact data:

  1. Go to **CRM → Contacts**.
  2. Apply any filters to narrow down the records you want to export (optional).
  3. Click **Export → Export to CSV**.
  4. ParsaLink generates a CSV file with all visible contact fields and downloads it to your device.

  The export includes all fields that are currently visible in the contacts list, including custom fields. Linked records (accounts, opportunities) are represented by name in the export.
</div>

<Tip>
  Apply filters before exporting to create targeted exports — for example, all contacts tagged "VIP" or all leads assigned to a specific rep.
</Tip>
