Home Lists Importing and syncing contacts

Importing and syncing contacts

By mario· Mar 29, 2026 · Lists

Most schools have a contact database before they start using Newsroom — in Mailchimp, in spreadsheets, in CRMs. This article covers the two ways contacts come into PortalHQ: bulk import (one-off) and SIS sync (ongoing).

SIS sync — the primary source

For most schools, contacts come from the SIS automatically. When you set up an SIS integration (see Integrations Overview), parent and staff records are synced into PortalHQ and become Newsroom contacts.

This means:

  • New parents get added when their child enrolls.
  • Departing parents get flagged when their child leaves.
  • Email and phone updates flow through on the next sync.

The sync is the source of truth for contacts that originate in the SIS. Don’t edit those contacts directly in Newsroom — your changes will be overwritten on the next sync.

For contacts that don’t originate in the SIS (alumni, vendors, prospective families), you manage them in Newsroom directly.

Importing contacts manually

For one-off imports from a spreadsheet or external system:

  1. Go to Newsroom → Contacts → Import.
  2. Download the template CSV (it shows the expected columns and format).
  3. Fill in your data — at minimum, email; ideally first name, last name and any custom fields.
  4. Upload the CSV.
  5. Review the import preview — PortalHQ shows new contacts vs. updates to existing ones.
  6. Confirm the import.

Imported contacts are added to your contact database. By default they go to no list — you need to add them to a list separately or set up rules that automatically include them.

CSV format

The template includes columns for:

  • email — required.
  • first_name, last_name.
  • phone.
  • One column per custom field you’ve defined.
  • tags — comma-separated tags to apply.
  • lists — comma-separated list names to add the contact to immediately.

For schools migrating from Mailchimp, the Mailchimp export format works with minor renaming.

Updating existing contacts

If a row in the CSV matches an existing contact (by email), PortalHQ updates the existing record rather than creating a duplicate. Use this to:

  • Bulk-update custom fields.
  • Bulk-add tags.
  • Re-subscribe contacts (only with consent).

To avoid accidental overwrites, the import preview shows you exactly what would change before you confirm.

Avoiding duplicates

PortalHQ matches contacts by email. If the same person has two email addresses in your data, they’ll be two contacts. Clean up before import — pick a canonical email per person.

If you discover duplicates after import:

  1. Open the duplicate contact.
  2. Merge with the master (link in the contact detail).
  3. The duplicate’s tags, history and list memberships move to the master.

Re-subscribing unsubscribed contacts

PortalHQ will not re-subscribe a contact that has previously unsubscribed unless you explicitly mark them as opted-back-in. Importing a CSV with an unsubscribed contact’s email doesn’t undo the unsubscribe.

For genuine re-subscriptions (parent requested it directly), update the contact’s subscription status manually.

API sync from external systems

If your school has another system that should keep PortalHQ contacts in sync (e.g. a custom CRM, a finance system with parent records):

  1. Use the Newsroom Contacts API — see Contacts API.
  2. Push contact updates from the external system to PortalHQ on whatever schedule makes sense.

Common pattern: nightly sync from a CRM that’s the source of truth for prospective families.

After import

  • Browse the contacts list to confirm the import landed correctly.
  • Check that custom fields you imported are populated.
  • Set up or update mailing lists that should include the new contacts — see Segmenting your contact database.
  • Test a small campaign to a subset of new contacts to confirm deliverability.

Tips

  • Import in batches. Splitting a 5,000-contact import into 5 × 1,000 makes it easier to spot issues and roll back if needed.
  • Always download a CSV before upload. Keep the source file as your record of what was imported.
  • Validate emails first. Removing invalid addresses before import prevents bounces and protects sender reputation.
  • Document what you imported. A note in the contact’s record (or as a tag) showing the source helps future-you remember where contacts came from.