Add your Perlego catalogue to Ex Libris Alma
Learn how to export your Perlego MARC records and import them into Ex Libris Alma via SFTP.
Included: Essential (self-serviced), Enhanced (self-serviced), Ultimate (serviced)
Add-on required: Yes, if you are Essential or Enhanced tier and you require Perlego to manage the SFTP delivery
Table of contents
- Overview
- Before you start
- Step 1: Configure SFTP access in Alma
- Step 2: Create the import profile
- Step 3: Get the MARC file into your SFTP directory
- Step 4: Test, then schedule or run
- Step 5: Configure linking and access guidance for users
- Step 6: Handling deletions
- Keeping your catalogue up to date
- Troubleshooting
Overview
Connecting Perlego to Alma lets your exact collection appear as discoverable, searchable inventory in your catalogue and Primo/Primo VE, without any manual cataloguing.
Perlego offers two ways to get the MARC file into Alma:
- Managed delivery (Ultimate tier): Perlego's team uploads the file into your Alma SFTP directory each month, so your catalogue refreshes automatically as Perlego adds new titles.
- Self-service (any tier): Download the file yourself via Perlego's Catalogue Export feature and upload it into your SFTP directory — see Step 3. This isn't automatic, so you'll need to repeat the export and upload each month to keep your catalogue current.
The Alma import profile configuration (Step 2 onwards) is identical either way.
Before you start
Make sure you have:
- Alma access with the Catalog Administrator or Repository Administrator role (needed to create and edit import profiles)
- Clarity on which route you'll use to get the file: Perlego-managed upload (Ultimate tier only) or self-service via Catalogue Export (available on any tier) — see Overview
- Create a local Electronic Collection (e.g. named "Perlego") to hold the portfolios
- Access to your Alma Sandbox environment, separate from Production, for testing
- A member of your Perlego account team you can share SFTP delivery details with
Note: The full Perlego collection is a single file that can exceed 1GB and contain over 1 million records. Always test with a small file in your sandbox first — see Step 4.
Step 1: Configure SFTP access in Alma
Alma includes a built-in, out-of-the-box connection called the Ex Libris Secure FTP Service, so you don't need to stand up or maintain your own SFTP server for this integration.
Full Ex Libris documentation: Configuring Ex Libris Secure FTP Service
- In Alma, go to
Configuration Menu>General>External Systems>S/FTP Definitions. The Ex Libris Secure FTP Service section is enabled by default — you don't need to enter a server, port, or username, as these are already provided. - Select
Regenerate private keyto download the RSA private key. This is what's used to log in to the service (via FileZilla or a similar client).Note: Store this key securely, and don't select
Regenerate private keyagain once you're connected — doing so resets the connection. - Your institution's Ex Libris Secure FTP directory has two sub-directories: Sandbox and Production. It has a 4GB storage limit and a 30-day data retention period.
- Share the SFTP host details and credentials with your Perlego account contact, so their team can place the monthly MARC file directly into the correct sub-directory.
Step 2: Create the import profile
Full Ex Libris documentation: Managing Import Profiles
Go to Resources > Import > Manage Import Profiles > Add New Profile, and select Repository as the profile type — this is the type used for loading bibliographic MARC records directly into the catalogue.
The settings below reflect a configuration successfully used by partners for their live Perlego import. Use them as your starting point, and adjust anything specific to your cataloguing conventions with your systems/cataloguing team.
2.1 Profile Details
| Field | Recommended value |
|---|---|
| Profile name | Perlego |
| Profile description | Perlego eBook subscription |
| Originating system | Other |
| Import Protocol | FTP |
| Physical source format | Binary |
| Encoding format | UTF-8 |
| Source format | MARC21 Bibliographic |
| Target format | MARC21 Bibliographic |
| Cross walk | No |
| Status | Active |
| Files to import | New |
| Scheduler status | Inactive while building and testing the profile — see the note below |
| Scheduling | Monthly, at a quiet time — e.g. last Thursday of the month at 02:00 |
| Email Notifications | Add your systems team so failures are flagged |
| S/FTP Connection Type | Select from Configured FTP → Ex Libris Secure FTP Service |
| File name patterns | *.mrc |
Note: Leave Scheduler status set to Inactive while you're building and testing the profile. Trigger your sandbox and first production test runs manually instead, using
Run Importfrom the Import Profiles page row actions (see Step 4) — this keeps every test run under your control rather than tied to a calendar. Only switch Scheduler status to Active with the monthlySchedulingvalue once you're happy with the test results and have agreed a delivery cadence with your Perlego contact.
2.2 Normalization & Validation
| Field | Recommended value |
|---|---|
| Filter out the data using | None required |
| Correct the data for matching and cataloging using | A normalization process suited to your e-resource cataloguing standards. Work with your cataloguing team to build an equivalent if you don't already have one |
| Change the data for PO Line and Inventory using | Not used |
| Handle invalid data using | MarcXML Bib Import (Ex Libris' standard recommendation) |
| Skip records with validation issues | Recommended on for the full production load, so a handful of malformed records don't stop a 1M+ record job. Leave off for your small sandbox test, so you can see any issues directly |
2.3 Match Profile
| Field | Recommended value |
|---|---|
| Match by Serial/Non-Serial | Yes |
| Serial match method | ISSN (exact subfield match) / 024 / 035 |
| Non-serial match method | ISBN (exact subfield match) / 024 / 035 |
| Select an Electronic Collection to match against | Your Perlego collection (from "Before you start") |
| Handling method | Automatic |
| Upon match | Overlay |
| Select Action | ✓ Disregard matches for bibliographic CZ-linked records <br> ✓ Single match — match only record with the same inventory type (electronic/physical) <br> ✓ Match on title type |
| Merge rule applied on overlay | A rule that retains the 506 (access restriction) note for single-title eBooks — build this with your cataloguing team if needed |
| Allow bibliographic record deletion | Enabled |
| Do not override/merge a record with lower brief version | Enabled |
| Do not override Originating System | Enabled |
| Community Zone linked records handling | Update Community Zone record with local extensions |
| Do not override/merge record with an older version | Disabled |
Automatic Multi-Match Handling
| Field | Recommended value |
|---|---|
| Select Action | Disregard matches for bibliographic CZ-linked records; Disregard invalid/canceled system control number identifiers; Prefer record with the same inventory type (electronic/physical) |
| Conclusive action for remaining multiple matches | Skip and do not import unresolved records |
| Merge & Combine — Preferred record | Record with the most items |
| Merge & Combine — Secondary record | Delete |
| Merge & Combine — Merge method | Overlay all fields but local |
| Merge & Combine — Update holdings call number | No |
| Record Redirection — Canceled record | Delete |
| Record Redirection — Merge method | Overlay all fields but local |
| Record Redirection — Update holdings call number | No |
| No Match — Upon no match | Import |
2.4 Inventory Information
| Field | Recommended value |
|---|---|
| Inventory Operations | Electronic |
| Delete/deactivate portfolios | No |
| Use Community Zone portfolios | No |
| Portfolio type | Part of an electronic collection |
| Electronic Collection | Your Perlego collection |
| Service | Full Text |
| Material type | Book |
| Portfolio | Single portfolio |
| Create inventory only for new bibliographic records | Yes |
| Extract access URL from field | 856, subfield u |
| Extract public note from field | Leave the field blank; set the Default Value to: "View this book online, via Perlego, both on- and off-campus" |
| Activate resource | Yes |
Note: The Set Management Tags tab can usually be left at its defaults unless your institution applies specific management tags to imported sets.
Select Save once all tabs are complete.
Step 3: Get the MARC file into your SFTP directory
How the file gets to Alma depends on your tier:
3.1 Managed delivery (Ultimate tier)
Once your SFTP details are shared and the import profile is saved, this is handled by Perlego:
- Perlego's team uploads the full MARC record file to the Sandbox sub-directory first, for your initial test
- Once you confirm the test import worked, they upload to the Production sub-directory on the agreed monthly schedule
You don't need to manually retrieve or move the file — it's placed directly where your import profile expects it.
3.2 Self-service download (any tier)
You can download the MARC file yourself using Perlego's Catalogue Export feature — available on Essential, Enhanced, and Ultimate tiers — then upload it to your Alma SFTP directory:
- Log in to your Perlego admin account and go to the Subscription Manager.
- Select the Catalogues tab in the left sidebar.
- Click
Export Catalogue. - Choose
All topics(for the full collection) or select specific topics for a subset. - Choose MARC as the format (not KBART — Alma's import profile expects MARC21).
- Wait for the export to process — large MARC downloads (like the full collection) can take around an hour.
- Once ready, find it in the catalogue requests table and click
Download. - Using an SFTP client (e.g. FileZilla) and the RSA key/credentials from Step 1, connect to your Ex Libris Secure FTP directory.
- Upload the file to the Sandbox sub-directory first for testing, then to Production once you're ready to go live.
Since there's no managed monthly delivery on this route, you'll need to repeat the export and upload yourself each month — see Keeping your catalogue up to date. Full instructions for the export step: Export your catalogue.
Note: Whichever route you're on, the import profile configuration in Step 2 works the same way — Alma just picks up whatever file matching
*.mrclands in the directory.
Step 4: Test, then schedule or run
Note: Always test with a small file before the full collection. The complete Perlego catalogue can exceed 1GB and 1 million records — testing catches configuration issues (matching, inventory mapping, normalization) on a manageable dataset before they multiply across the full run.
- Get a small test file — either ask Perlego for a small sample (managed delivery) or export a small subset yourself via Catalogue Export (self-service).
- Run the import profile manually against your Sandbox environment: from the Import Profiles page, select
Run Importfrom the row actions. - Check the job report and spot-check a few resulting bibliographic records and portfolios in the sandbox catalogue.
- Once you're happy with the test results, either:
- Let the monthly schedule run automatically against Production, or
- Trigger it manually via
Run Importthe first time, to confirm the production load behaves as expected
Step 5: Configure linking and access guidance for users
Both of the settings below live on the same Electronic Service Editor page — go to Resources > Electronic Resource Management > Electronic Collections > select your Perlego collection > Edit Service. Neither is part of the import profile, so this is a one-time setup that applies to every Perlego title automatically.
5.1 Make sure no proxy is applied to Perlego links
Perlego handles its own authentication — users register once and log in with their institutional email address — rather than authenticating by IP address the way most journal databases do. Because of this, Perlego URLs should not be routed through your EZproxy, OpenAthens, or other proxy server.
Open the Linking tab and check:
| Field | Recommended value |
|---|---|
| Proxy Enabled | No |
| Proxy Selected | Leave blank |
Note: Alma normally inherits a proxy setting from your institution's defaults, so it's worth checking this explicitly rather than assuming it's already off — otherwise Perlego links can end up wrapped in a proxy redirect that Perlego's own login flow doesn't expect, breaking the link or creating a confusing double authentication step.
Note: This is best set once at the Service level (as above) rather than per portfolio — portfolios inherit the service-level proxy setting unless you deliberately override it.
5.2 Add access & authentication guidance
Beyond the "View this book online" note built into the import profile, it's worth adding fuller guidance text so users understand how to access Perlego content before they click through from Primo VE.
Open the Notes tab. There are two fields available here:
| Field | What it's for | Example wording |
|---|---|---|
| Authentication Note | Displays with guidance about accessing/authenticating into the resource. Can hold more than one paragraph. | "To access Perlego content, you first need to register on their website and then log in with your [your institution] email address. Perlego content is only available for staff and students at [your institution]. For details about this platform's accessibility, visit the Library's Ebook suppliers accessibility features page (your library's own accessibility page URL). Perlego titles are read-only on desktop. For more information about downloading Perlego titles on mobile, visit the Perlego Help Centre." |
| Public Note | General information about the service. | "View this book online, via Perlego, both on- and off-campus" |
Note: Swap in your own institution name, your own accessibility page link, and a link to the Perlego Help Centre rather than reusing this wording as-is.
Note: If Group Settings are enabled on this Electronic Collection, set these notes on the Collection Editor's Notes tab (or the service-level Group Settings Profile) instead — a Public Note set at the Service Editor level won't trickle down to individual portfolios when Group Settings are in use.
Step 6: Handling deletions
Title removals work differently to the main catalogue feed, and it's worth understanding the mechanics before you need them.
Perlego does not currently code deletions using a "d" in the MARC Leader position 05, which is the convention some other vendor feeds use to trigger an automatic delete on import. Instead, when you need titles removed, Perlego sends a CSV listing the Book IDs to be removed — this isn't self-serve today (unlike the main Catalogue Export), so request it through your Perlego account contact when you need it.
Keeping your catalogue up to date
- Managed delivery (Ultimate tier): Perlego delivers a full refreshed file on a monthly cadence, adding newly published titles — no action needed from you.
- Self-service (other tiers): You'll need to repeat the Catalogue Export download and SFTP upload each month yourself to keep pace with new titles.
- Title removals use a separate process — see Step 6: Handling deletions.
Troubleshooting
| Problem | Fix |
|---|---|
| Import job runs for a very long time or times out | Large files (1GB+, 1M+ records) can take significant processing time — this is expected for the full production load. Confirm the job is still progressing via Monitor Jobs before assuming it's stuck. |
| Records are skipped or land as "multi-match" | Check the job report's Bibliographic Record Matches section. Review your Match Profile's inventory-type and title-type matching options if you're seeing unexpected duplicate matches. |
| Portfolios aren't appearing, or link to the wrong collection | Confirm the Electronic Collection selected in both the Match Profile and Inventory Information tabs matches the collection you set up for Perlego. |
| Job completes with validation errors | Check whether "Skip records with validation issues" is enabled as expected for your load size, and review the flagged records in the job report. |
| Removed/discontinued titles still show as available | Title removals aren't part of the monthly feed — see Step 6: Handling deletions. |
| Perlego links fail, loop, or ask users to log in twice | Check the Proxy Enabled setting on the Electronic Service's Linking tab — it should be No. A proxy prefix on the URL conflicts with Perlego's own login flow. |