sequenzy push imports start, or the create_push_import and start_push_import MCP tools.
Before you import
Imported tokens keep working only with the same credentials your app registered them with:- iOS: add an APNs key from the same Apple team, for the same bundle ID. Use the production environment for App Store and TestFlight installs.
- Android: add a service account from the same Firebase project your app uses.
Sources
Each source’s API key is stored encrypted and used only to read devices. It is deleted as soon as the devices are read, or when you cancel the import; a failed import keeps it so you can resume.
CSV columns
A CSV needs atoken column (or push_token, device_token, identifier) and a platform column (ios, android, or OneSignal device_type codes). Add external_id or email so each device finds its contact. Optional columns: status or subscribed (blank means opted in), unsubscribed, app_id, last_active, token_type, app_version, os_version, device_model, locale, timezone, and attribute.<name> for contact attributes. The dashboard and CLI upload files of up to 256 MB, in parts, and the import starts only once every part has arrived. For larger exports, import from OneSignal, Braze or Customer.io directly, or split the file into several imports.
What gets imported
- Opted-in devices are linked to a contact by external ID, then email. If no contact matches, a contact is created without joining any list or starting a sequence. A device with only an external ID gets a push-only contact: it has no email or phone, receives push, and can be used in segments, while email and SMS sends skip it. When a later contact create or update (the subscribers API, or an integration that uses it) sends that external ID with an email, the email is added to the same contact, or, if another contact already has that email and no external ID, the two contacts are merged. Events tracked with an
eventIdand contact CSV imports do not merge; they report the identity conflict. See push-only contacts. A device whose email belongs to a contact with a different external ID is skipped too, since that is another person. - Opted-out devices are stored as unsubscribed and never receive push.
- Devices you already have, for example registered by your app through the Sequenzy SDK, are left as they are. A device without a contact is linked to the matching one.
- Tags and attributes are copied onto contacts only for keys a contact does not have yet. Turn this off with Copy tags and attributes to contacts.
- Tokens that cannot work are rejected: iOS tokens that are Firebase tokens (some Customer.io apps send iOS through Firebase), Firebase installation IDs, and malformed tokens.