> ## Documentation Index
> Fetch the complete documentation index at: https://docs.junojourney.com/llms.txt
> Use this file to discover all available pages before exploring further.

# User certifications

> One row per learner with every certificate they hold — earned in Juno, uploaded, or imported — with validity counts, filters, a per-user drawer, import, and export.

export const RelatedPages = ({pages = []}) => {
  if (pages.length === 0) return null;
  return <>
      <br />
      <strong>Related articles</strong>
      <CardGroup cols={2}>
        {pages.map(page => <Card title={page.title} href={page.href} key={page.href} />)}
      </CardGroup>
    </>;
};

export const NewVersion = ({feature, href, isNew = false}) => {
  if (isNew) {
    return <Note>
        <strong>This is the new version of {feature}.</strong> It is rolling out gradually.
        If your screens look different, you are on the <a href={href}>current version</a>.
      </Note>;
  }
  return <Info>
      <strong>A new version of {feature} is available.</strong> <a href={href}>See the new {feature}</a>.
      You might not see it yet. It is rolling out gradually and may not be enabled for your organization.
    </Info>;
};

export const RoleBadge = ({roles = []}) => {
  const colorMap = {
    Admin: "yellow",
    Manager: "blue",
    Learner: "green",
    "Co-editor": "purple"
  };
  return <>
      {roles.map(role => <span key={role}><Badge color={colorMap[role] || "gray"} size="sm" shape="pill">{role}</Badge>{" "}</span>)}
    </>;
};

export const FeatureAvailability = ({module, feature}) => {
  const label = feature || module;
  return <Info title="Feature availability">
      {label ? <>This feature requires the <strong>{label}</strong> module. </> : <>This feature may not be enabled for your organization. </>}
      If you don't see it in Juno, contact your administrator.
    </Info>;
};

<NewVersion feature="Certification Management" href="/admin/content-management#certification-management" isNew />

<RoleBadge roles={["Admin", "Manager"]} />

<FeatureAvailability />

**Admin → Content → Certifications → User certifications** lists every certificate your learners hold — earned in Juno, uploaded by the learner, or imported from a spreadsheet — one row per learner. Use it to spot expiring credentials, answer "who holds what", and export a record for HR or compliance.

Where Certifications is on for your organization, this view replaces the older **Certification Management** tab; its old address brings you here.

<img src="https://mintcdn.com/juno-76d1c392/J7_Wlg3tPXoctjrA/images/admin/user-certifications.png?fit=max&auto=format&n=J7_Wlg3tPXoctjrA&q=85&s=3d94a4eb30733eba18110984cefb2ba8" alt="User certifications: one row per learner with validity counts and source chips" width="1280" height="800" data-path="images/admin/user-certifications.png" />

***

## Filters

| Filter | What it does |
| - | - |
| **All** / **Valid** / **Expiring soon** / **Expired** | Keeps learners who hold at least one certificate in that state. **Expiring soon** means within the next 90 days. Each toggle shows a count. |
| Search | Matches name or email. |
| **Certification** | Learners who hold a given certification. Admins for **Content** only. |
| **Group** | Learners in a given [group](/collaboration/groups). |
| **Sources** (in the column header) | Keeps certificates from the ticked sources. |

**Clear filters** resets everything.

***

## Columns

| Column | What it shows |
| - | - |
| **User** | Name and email |
| **Total** | How many certificates the learner holds |
| **Valid** / **Expiring soon** / **Expired** | How many are in each state. Certificates without an expiration count as valid. |
| **Sources** | Where the certificates came from (see below) |
| **Last earned** | The most recent issue date |

### Sources

| Chip | Meaning |
| - | - |
| **Earned** | Awarded by Juno — by a certification, or by completing a Journey |
| **Uploaded** | Added by the learner on their profile |
| **Imported** | Added by an Admin through **Import certificates** |

A certificate that was also issued on [Accredible](/integrations/accredible) carries a verified icon. Hover it for **Also issued to Accredible**, or **View on Accredible** when a link exists.

***

## Learner details

Select a row to open the learner's certificates. Each entry shows the title, its source and validity chips, and the **Issue date**, **Expiration date**, **Authority**, and **Certification number**, plus a link and the uploaded file when they exist.

<img src="https://mintcdn.com/juno-76d1c392/J7_Wlg3tPXoctjrA/images/admin/user-certifications-drawer.png?fit=max&auto=format&n=J7_Wlg3tPXoctjrA&q=85&s=2bb3b4674836005d8944a913d7df1c98" alt="A learner's certificates in the drawer" width="1280" height="800" data-path="images/admin/user-certifications-drawer.png" />

### Delete a certificate

Select **Delete certificate** on an entry and confirm. The certificate is removed from the learner and this can't be undone. If a certification rule awarded it, the learner can earn it again. A credential already issued on Accredible is not revoked.

***

## Import and export

* **Import certificates** opens the spreadsheet upload, for credentials issued outside Juno. This may not be enabled for your organization.
* **Export** downloads one row per certificate with Name, Email, Certification, Source, Status, Issue date, Expiration date, Authority, Certification number, and whether it was also issued to Accredible. The export covers the first 10,000 learners of the current view; narrow the filters for a complete file.

<RelatedPages
  pages={[
{ href: "/admin/certifications", title: "Certifications" },
{ href: "/learning/certifications", title: "Certifications for learners" },
{ href: "/integrations/accredible", title: "Accredible" },
]}
/>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.