Import brings over what your viewers built up on another bot: StreamElements loyalty point leaderboards, custom commands from StreamElements, Nightbot or Fossabot, and your cover song list from StreamerSonglist. Anything else can come in as a CSV file.
What it solves
The expensive part of switching bots is not the configuration; it is that everything your viewers accumulated goes to zero. A regular who has followed you for two years and saved up a few hundred thousand points does not experience a reset as "just a tooling change". Custom commands are the same: they are a channel's inside jokes, and nobody wants to retype them. Import means the move does not get charged to your viewers.
No credentials needed
Data is fetched from the other platform's public side using your channel's Twitch account. You never log into StreamElements and never paste a token or API key. If the other platform is unreachable at the time, CSV upload is the fallback.
Two steps: fetch, then confirm
- Pick the source and the kind of data (points, commands, cover songs or check-in).
- Hit Fetch: a large leaderboard takes a moment to read.
- Preview: how many rows are importable, how many are skipped, how many need review.
- Only after you confirm is anything written.
Fetching and writing are separate steps, so you always get one look before deciding. Fetched data is staged for 24 hours; after that you have to fetch again.
Importing points
- Add: add on top of the viewer's current balance, keeping what they have.
- Overwrite: replace the viewer's balance with the imported value.
You can also import only the top N, or set a minimum-points threshold to filter out the long tail of single-digit ghost records. If the import exceeds your plan's quota, the excess is skipped and listed in the report.
Importing commands
Imported commands arrive disabled. That is deliberate: a command from another bot does not necessarily mean the same thing here, and some responses need adjusting. Review them on the Commands page and enable the ones you want.
Command permissions carry over from the source platform (subscriber and up / VIP and up / MOD and up / broadcaster only) and can still be changed afterwards.
Variables inside responses are converted where a clean equivalent exists
($(user) becomes {username}, for example).
Anything that cannot be converted is left as-is and flagged "needs review":
those are usually variables that call out to the internet or execute arbitrary content, which
have no equivalent here and must not be guessed at. Flagged commands are still created; just
read them before switching them on.
Cover song list import
If you keep a song list on StreamerSonglist, you can bring the titles, artists and attributes (tags) straight into your cover song library instead of retyping them. Active/inactive state comes across too.
- Songs you already have (same title and artist) are skipped. So you can re-import whenever your list grows, without overwriting the backing tracks, guide tracks or karaoke timings you already set up.
- The preview can be filtered by tag, or ticked song by song. Long lists are only shown a few hundred at a time; leaving everything ticked imports the unlisted ones too, but the moment you untick any single song, only the songs you ticked come in; the page says so explicitly.
- Lyrics are not imported. The source has none. You can tick "fetch lyrics after importing" on the confirm screen and the site will look each song up in a community lyrics database by exact title and artist; it only fills songs that have no lyrics, never overwrites, and can be stopped part-way. The library page also has a "fill in lyrics" button that works on songs you imported earlier.
No StreamerSonglist account? The same flow takes CSV and JSON, so a spreadsheet you built yourself works just as well.
Check-in import
Brings the streaks and totals your viewers built up elsewhere into check-in. CSV only, four numbers in all, two per day and two per stream: daily streak, daily total, per-stream streak, per-stream total. There is no day-by-day or stream-by-stream history, so none is invented.
The first column is the viewer's Twitch login (the ID in their channel URL), not their display name. It is looked up on Twitch, so a name in another script will not resolve and is skipped and listed in the report.
- A cell left empty is not changed, in both modes. To fill in only the daily numbers, leave the last two columns empty or drop them; give a total without a streak and the streak stays as it was.
- Merge: adds the CSV numbers to the current record, for both streak and total. Importing the same file twice doubles them, which is why this import has a 24-hour cooldown.
- Overwrite: replaces the numbers with the CSV's, even when the CSV is smaller. Viewers who are not in the CSV are left alone.
Daily check-in decides whether a streak broke from the date of the last check-in, so the import records one day for each viewer: yesterday for anyone with a daily streak above 0, so today's check-in continues it, and the day before for anyone at 0, only to keep their total. That day shows up in the viewer's daily check-in history. Nothing is added if the viewer already checked in yesterday or today. A viewer with a per-stream streak above 0 is attached after the latest stream, so their next attendance keeps counting. Where a streak in a pair is higher than its total, the streak is lowered to match the total.
CSV: the universal escape hatch
Any platform that can export a table can come in through CSV:
- Points:
login,points - Commands:
command,response - Cover songs:
title,artist,tags,active - Check-in:
login,continuous,total,session_continuous,session_total
Sample files are downloadable from the page. This route does not depend on a third-party service still being alive, which also makes it the only option when the other service has already shut down.
Common misconceptions
- Each source has a cooldown. 24 hours for points, commands and check-in, 15 minutes for cover songs. That is a cooldown, not a quota: it keeps repeated scraping off the other platform and stops a mis-click from crediting the same points or check-in days twice. The song library cooldown is much shorter because song lists keep growing and you need to top them up, and duplicates are skipped anyway.
- A private StreamElements leaderboard cannot be read. In the StreamElements dashboard, under Loyalty, set the leaderboard to public temporarily, fetch again, and switch it back afterwards. This is not a limitation here; there is simply no public data to read.
- Import covers viewer points and custom commands, not a whole setup. Module settings, alert styling and giveaway rules from another bot are not (and cannot be) carried over. To move settings between channels on this site, use Backup & restore.
- Viewers are matched by looking up their Twitch account name. Each name in the source should be the Twitch login (the ID in the channel URL), not the display name, and is resolved against Twitch; anything that does not resolve (renamed, deactivated, or not a Twitch account at all) is skipped. That is what most of the "skipped" count is, and the skipped names are listed so you can check them.
Settings
The text below is taken from the in-app help, so it stays in sync with the actual interface.
| Setting | What it does |
|---|---|
| Fetching… | Reading data from the source platform. Large leaderboards may take a moment. |
| Applying… | Writing data. Please keep this page open. |
| CSV commands | Import custom commands from a CSV (command,response) |
| StreamElements points | Fetch the StreamElements loyalty points leaderboard |
| CSV points | Upload a login,points file (works with any platform) |
| Nightbot commands | Import Nightbot custom commands |
| StreamElements commands | Import StreamElements custom commands |
| Fossabot commands | Import Fossabot custom commands |
| StreamerSonglist cover songs | Fetch your StreamerSonglist song list into the cover song library |
| CSV cover songs | Upload a title,artist,tags[,active] file (JSON also accepted) |
| CSV check-ins | Upload a login,continuous,total,session_continuous,session_total file (Twitch login, streak and total, per day and per stream) |
| Add | Add on top of viewers' existing points (keeps current balances). |
| Replace | Replace viewers' current points with the imported values. |
| Duplicate | Same title and artist already exist in your library, so this will be skipped on import. |
| Fetch lyrics after importing | Matches each song against LRCLIB by exact title and artist. Only songs without lyrics are filled; nothing existing is overwritten. You can stop it at any time. |
Other notes
- Carried over from the source command; adjustable in command settings.
- Each source can be imported once every 24 hours.
- Drop a CSV file here, or
- Estimated from balances as of when this preview loaded.
- Excluded by the filters below; this row will not be imported.
- Commands were created (disabled). Enable the ones you want on the Commands page.
- Skipped viewers already had the same numbers after the import, so nothing needed updating.
- If the source platform can't be reached, use CSV upload as an alternative.
- Adds the CSV numbers to the current record, for both streak and total. Importing the same file twice doubles them. Cells left empty in the CSV are not changed.
- Replaces the current numbers with the CSV's, even when the CSV is smaller. Cells left empty and viewers missing from the CSV are not changed.
- "Now" is the value at fetch time; the record at apply time is what counts.
- Daily and per-stream are two independent sets of numbers; a set the CSV leaves empty is not touched at all. A viewer with a daily streak above 0 gets yesterday recorded as a check-in so today's check-in continues it (the day before for a streak of 0, only to keep the total), and that day shows up in their daily check-in history. A viewer with a per-stream streak above 0 is attached after the latest stream so their next attendance keeps counting; no per-stream attendance record is invented.
- Left empty in the CSV, so this is not changed
Other settings
These settings have no additional help text in the dashboard; only their names are listed here.
- Subscribers+
- VIP+
- Mods+
- Broadcaster only
- Restricted
- Download CSV sample
- Download JSON sample
- The first column is the command name, the second is the response; quote a response that contains commas.
- Columns are title, artist, tags and active (1 or 0); the last two can be left out. Separate tags with | or ;, never commas. Content starting with [ or { is parsed as JSON.
- Points
- Commands
- Cover songs
- Check-in
- StreamElements
- Nightbot
- Fossabot
- StreamerSonglist
- CSV / Universal
- Import the points leaderboard and custom commands from StreamElements
- Import custom commands from Nightbot
- Import custom commands from Fossabot
- Import titles, artists, and tags from your StreamerSonglist song list
- Upload a file exported from any platform (points, commands, cover songs, check-in)
- Bring your points and custom commands over from StreamElements, CSV, or another bot
- Choose a data source to import. We fetch it automatically using your channel's Twitch account, no credentials required.
- Points import
- Commands import
- Recent imports
- Back
- Start fetch
- Confirm import
- You can import from the same source once every 15 minutes.
- Zero credentials: we fetch automatically using your channel's Twitch account. No login or token needed.
- Import mode
- Merge
- Choose file
- Choose another
- The first column is the Twitch login (the lowercase ID in the channel URL), not the display name; the second is the points.
- Failed to read the file, please try again.
- Preview and confirm
- Fetched
- Importable
- Skipped
- Duplicates
- Already tracked
- New
- User
- Points to import
- Current
- Final
- Only top N
- Minimum points to import
- Quota limit reached
- Needs review
- Imported commands are disabled by default; review and enable them on the Commands page.
- Select all
- Invert selection
- Clear tag filter
- Not listed
- Import complete
- Import again
- Applied
- Failed
- Already in your library, skipped
- Tags over the limit, truncated
- Library full, not imported
- Over your plan limit, not imported
- The import was interrupted here; this row may already be applied, so check before adding it by hand
- Could not be saved
- Import failed
- This import's staged data expired (24 hours). Please fetch again.
- Something went wrong during import. Please try again later.
- Your StreamElements leaderboard is currently private
- Open the StreamElements dashboard → Loyalty settings.
- Temporarily set the Leaderboard to public.
- Come back here and fetch again; you can set it private again afterwards.
- Queued
- Fetching
- Awaiting confirm
- Applying
- Done
- Expired
- The first column is the Twitch login (the lowercase ID in the channel URL), not the display name. Then daily streak, daily total, per-stream streak and per-stream total; empty cells are left unchanged.