Contents
Import / Export — Plugixa Team
Bulk export and import team members in CSV, JSON, or PDF formats. Ideal for site migrations, backups, and sharing member data with HR or marketing teams.
Open Plugixa Team → Import / Export.

Export
Pick a format and the plugin generates a file for download. Filters applied in the admin member list do not carry into exports — exports always include the current dataset (all members in the current language if multilingual is active).
CSV
- File:
plugixa-team-export-YYYY-MM-DD.csv - One row per member.
- Columns: all member fields plus flattened
skills,social_links, and custom field values (one column per field key). - UTF-8 BOM prefixed so Excel opens it cleanly.
JSON
- File:
plugixa-team-export-YYYY-MM-DD.json - Full fidelity: nested
skillsarray, nestedsocial_linksarray, and acustom_fieldsmap keyed byfield_key. - Best for round-tripping to another Plugixa Team install with full data preservation.
- File:
plugixa-team-export-YYYY-MM-DD.pdf - Generated via mPDF (shipped with the plugin).
- One member card per entry with circular photo (or initials fallback), name, job title, department, email, phone, short bio.
- Suitable for printing a staff directory.
REST endpoints
GET /wp-json/plugixateam/v1/import-export/export/csv
GET /wp-json/plugixateam/v1/import-export/export/json
GET /wp-json/plugixateam/v1/import-export/export/pdf
All three return a binary response with Content-Disposition: attachment.
Import
The import flow is a 3-step wizard.
Step 1 · Upload
Drag-and-drop a file (CSV or JSON) into the upload area, or click to browse. Accepted:
.csv(any delimiter auto-detected; UTF-8 expected).json(Plugixa Team JSON export format, or any structurally compatible JSON)- Max 10 MB
On upload, the plugin:
- Parses the file server-side.
- Validates structure (must have at least one member-like record).
- Returns a preview (first 10 rows) + suggested column mapping + a temporary
file_tokenthat references the parsed data.
Step 2 · Map columns
The wizard shows two columns:
- Left — headers from your file.
- Right — Plugixa Team fields:
first_name,last_name,job_title,department,email,phone,bio, …, plus any defined custom fields byfield_key.
The plugin auto-maps obvious matches (e.g., “First Name” → first_name). Adjust as needed. Unmapped headers are ignored.
Options:
| Option | Values | Default | Notes |
|---|---|---|---|
| Default status | published, draft |
draft |
Status for imported members. |
| Duplicate handling | skip, update, create |
skip |
What to do when a member with the same slug/email exists. |
| Assign to groups | group picker | — | Auto-assign every imported member to selected group(s). |
Step 3 · Results
Click Import. The plugin iterates each row, applies the mapping, and creates / updates / skips members per your options.
Results screen shows:
- Imported — count of newly created members.
- Updated — count of existing members updated (when duplicate handling is
update). - Skipped — count of duplicates skipped.
- Errors — detailed error list (row-level) with the reason each row failed (e.g., missing required field, invalid email).
You can re-download the errors table as CSV to fix and retry.
REST endpoints
POST /wp-json/plugixateam/v1/import-export/import/validate
POST /wp-json/plugixateam/v1/import-export/import/execute
validate expects multipart/form-data with the file. execute takes JSON with the file_token, mapping, and options.
Round-tripping between installs
The cleanest migration path:
- On the source site, export as JSON.
- On the target site, install Plugixa Team (matching version, ideally).
- If you use custom fields, manually recreate field definitions on the target with identical
field_keyvalues before importing. - Import the JSON; the mapping wizard auto-maps everything and
createduplicate handling produces a clean copy.
Custom-field values import into the plugixateam_meta table automatically as long as the field_key matches an existing definition.
Formats in detail
CSV
Example minimal CSV:
first_name,last_name,email,job_title,department,status
Jane,Smith,jane@example.com,Senior Engineer,Engineering,published
Carlos,Gomez,carlos@example.com,Designer,Design,published
Skills and social links in CSV use a simple pipe-separated format:
skills,social_links
"PHP|90|#8892bf;React|80|#61dafb","linkedin|https://linkedin.com/in/jane;github|https://github.com/jane"
Rows are semi-colon-delimited; within a row, fields are pipe-delimited.
JSON
[
{
"first_name": "Jane",
"last_name": "Smith",
"slug": "jane-smith",
"job_title": "Senior Engineer",
"department": "Engineering",
"email": "jane@example.com",
"status": "published",
"bio": "…",
"skills": [
{ "name": "PHP", "percentage": 90, "color": "#8892bf" },
{ "name": "React", "percentage": 80, "color": "#61dafb" }
],
"social_links": [
{ "platform": "linkedin", "url": "https://linkedin.com/in/jane" }
],
"custom_fields": {
"certifications": "AWS, Azure",
"pronouns": "she/her"
}
}
]
Multilingual imports
- The import creates each row as a new member in the current admin language (from the language switcher, or the default if “All” is selected).
- To import translations: import the source language first, then import each translation with a
translation_groupcolumn matching the source’s UUID. Alternatively, link them later via the Translation Tabs UI on each member.
Duplicate handling
Duplicates are detected by slug first, then email as fallback:
skip— don’t import; count as skipped.update— merge imported data on top of existing; fields not in the CSV are untouched.create— always create a new row (slug gets a suffix like-2to stay unique).
Limits
| Limit | Value | Override |
|---|---|---|
| Max upload size | 10 MB | plugixa_team_import_max_size filter |
| Max rows per import | No hard limit | Use the filter above with server memory in mind |
| Export rows | All | No chunking needed — mPDF handles large exports |
Troubleshooting
CSV imports show all columns in the first column
The file isn’t truly a CSV — often a tab-separated file saved with a .csv extension. Open in a spreadsheet app, save explicitly as “CSV (comma-delimited)”.
Excel broke my UTF-8 accents
Open the exported CSV with File → Import in Excel and pick “UTF-8” as the encoding. Saving an edited file with “Save As” may strip UTF-8 — re-save as “CSV UTF-8” specifically.
Photos didn’t come through
CSV/JSON export URLs to photos, but imports don’t automatically download and attach external images. Either pre-upload photos to the target site’s media library and reference them by ID, or use the plugixa_team_import_photo filter to fetch and attach URL-based images at import time.
“Import failed: memory limit exceeded”
Very large imports (10K+ members) may exceed PHP’s memory limit. Increase memory_limit in PHP config, or split the file into smaller batches.
Updated members aren’t showing changes
Check the “Updated” count on the results screen. If it’s zero, the plugin thought your rows were new (different slug/email) and created duplicates. Change duplicate handling to update and retry with a backup first.
Related
- Members Management
- Custom Fields PRO
- AI Generator PRO — generate rather than import
- Hooks