Skip to main content
Move from Instantly, Smartlead, lemlist, Apollo, Snov.io or Saleshandy without leaving the conversation: scan the account, choose what to bring, and let the import run. It does what Integrations → Switch from another tool does in the dashboard, and nothing it creates sends email until you launch it. scan_import → start_import → continue_import (repeat) → get_import
scan_import takes the other tool’s API key as an argument, so the key passes through your AI client’s conversation. ManyPI stores it encrypted on the import and erases it when the import ends. If you would rather the key never touch the chat, start the import from Integrations → Switch from another tool in the dashboard; get_import can still follow it from here.

scan_import

Write · reaches the web
Check the other tool’s key and scan the account: campaigns with their step and lead counts, total leads, do-not-contact list size, and sending mailboxes. Opens an import in status scanned. Nothing is imported yet.

start_import

Destructive · reaches the web
Start a scanned import. In order: the do-not-contact list, then the chosen campaigns as draft campaigns with their email steps, then their leads, with custom variables as lead fields. Runs the first slice and returns the progress. Annotated destructive because it merges into existing leads and adds to the do-not-contact list, which stops mail to those addresses from every campaign. It sends nothing: the campaigns have no inbox until you launch them in ManyPI. With lemlist and Smartlead, leads come over through the chosen campaigns, so a lead in no chosen campaign stays behind. One import brings at most 100,000 leads, and your plan’s lead allowance applies.

continue_import

Write · reaches the web
Run the next slice, about 15 seconds of work, of a running import. Repeat until job.status is done. worked: false means another process held the import at that moment; ask again shortly. Slices are safe to repeat. An import nobody continues still finishes on ManyPI’s scheduler, only more slowly.

get_import

Read-only
One import, or the 20 most recent when no id is given. Statuses: scanned, running, done, failed, cancelled. Progress carries the phase, counts of leads created and merged, campaigns and steps recreated, addresses put on do-not-contact and leads queued, plus warnings. A finished import maps each old campaign id to its new ManyPI campaign in result.campaignMap.

cancel_import

Destructive · idempotent
Stop an import that has not finished and erase its stored key. Everything already imported stays. A cancelled import cannot be resumed.