> For the complete documentation index, see [llms.txt](https://docs.thewalletcrew.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.thewalletcrew.io/configure/advanced-configuration/wallet/import-and-export.md).

# Import & Export

Bulk import and update Apple Wallet and Google Wallet passes from XLSX files, and review the import report for errors.

## Import passes to The Wallet Crew

The Wallet Crew provides a powerful import tool for bulk importing or updating passes using XLSX files. This guide walks through the process and explains important considerations.

### Overview

The import tool supports:

* Bulk creation of new passes
* Updating existing passes
* Handling different pass types
* Managing pass identifiers and additional data
* Progress tracking and error reporting

### Before You Begin

1. **File Format**: Prepare the XLSX file with the following considerations:
   * Column names should be clean and avoid special characters
   * Data should be properly formatted according to the expected types
   * The file should contain all necessary pass information
2. **Required Columns**:
   * `id` (optional): If present, used to identify existing passes
   * `passType` (optional): The type of pass. If not specified, a default type must be selected
   * Other columns will be treated as additional data
3. **Data Validation**:
   * Email addresses should be properly formatted
   * Phone numbers should follow standard formats
   * Dates should be in a consistent format

### Import Process

#### Step 1: Access the Import Tool

1. Navigate to the **Passes** section in The Wallet Crew
2. Click the **Import Passes** button
3. Select the XLSX file

<figure><img src="https://123508161-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDJrf9G0l7ArnvuwEH0a8%2Fuploads%2FQu0X3A09k1Z7oZjUVHjn%2Fconfigure-readme-passes-list.png?alt=media&#x26;token=16ae4dfb-061a-4405-a3c4-13b6589195ae" alt="Passes list with the Import Passes button"><figcaption><p>The Import Passes action sits above the passes list.</p></figcaption></figure>

#### Step 2: Configure Import Settings

The import modal shows two important settings:

1. **Discriminator Column**:
   * If the file has an `id` column, it is automatically selected
   * Otherwise, choose a column that uniquely identifies each pass
   * This column will be used to determine if a pass should be created or updated
2. **Default Pass Type**:
   * Select the default pass type for passes that don't specify one
   * This is required if the file doesn't include a `passType` column

#### Step 3: Review and Import

1. Review the total number of passes to be imported
2. Check that the discriminator and pass type settings are correct
3. Click **Import** to begin the process

<figure><img src="https://123508161-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDJrf9G0l7ArnvuwEH0a8%2Fuploads%2FOpu3xMYXM9gKKsQdBaQy%2Fconfigure-readme-import-modal.png?alt=media&#x26;token=adcb1cc2-42ef-4e5b-bcfa-9b92e070be2f" alt="Import modal showing the discriminator column and default pass type settings"><figcaption><p>Verify the discriminator column and the default pass type before starting the import.</p></figcaption></figure>

#### Step 4: Monitor Progress

During the import:

* A progress bar shows the current status
* The number of passes created and updated is displayed
* Any errors are displayed in real-time
* The import can be cancelled at any time

<figure><img src="https://123508161-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDJrf9G0l7ArnvuwEH0a8%2Fuploads%2FfGMpncWLZmbIU068AMwU%2Fconfigure-readme-import-progress.png?alt=media&#x26;token=2439463a-8501-478e-9ed6-1b753776c788" alt="Import progress screen with counts of created and updated passes"><figcaption><p>Watch the created, updated and error counts while the import runs.</p></figcaption></figure>

### Important Notes

1. **Batch Processing**:
   * Passes are imported in batches of 16 for optimal performance
   * The process continues even if some passes fail to import
2. **Error Handling**:
   * Invalid data formats are reported
   * Missing required fields are highlighted
   * Errors can be reviewed and corrected
3. **Cancellation**:
   * The import can be cancelled at any time
   * The browser window should remain open during the process
4. **Data Processing**:
   * Empty values are converted to `null`
   * Special columns (id, secret, creationDate, etc.) are excluded from additional data
   * Metadata fields are handled separately

### After Import

1. The page will automatically refresh to show the updated passes once the modal is closed
2. The import report shows:
   * Number of passes created
   * Number of passes updated
   * Any errors that occurred

### Best Practices

1. **Data Preparation**:
   * Clean the data before import
   * Use consistent formatting
   * Validate email addresses and phone numbers
2. **File Structure**:
   * Keep column names simple and clear
   * Use standard date formats
   * Include all required fields
3. **Large Imports**:
   * For large files, consider splitting them into smaller batches
   * Monitor the progress and check for errors
   * Keep the browser window open during import

### Troubleshooting

If issues occur:

1. Check the error report for specific problems
2. Verify the file format and data
3. Ensure all required fields are present
4. Try importing a smaller batch to test


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.thewalletcrew.io/configure/advanced-configuration/wallet/import-and-export.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
