Kuidas väljastada Open Badges CSV-failist vähem kui 5 minutiga

Samm-sammult: laadi üles saajate CSV, vali märk ja vajuta Väljasta. Peata ja jätka partii keskel, korda ebaõnnestunud ridu, ekspordi tulemused. Sobib nii 10- kui ka 10 000-liikmelistele rühmadele.

Nacho Coll Autor Uuendatud 7 min lugemist
Samm-sammult: laadi üles saajate CSV, vali märk ja vajuta Väljasta. Peata ja jätka partii keskel, korda ebaõnnestunud ridu, ekspordi tulemused. Sobib nii 10- kui ka 10 000-liikmelistele rühmadele.

Kui oled kunagi väljastanud tunnistusi rühmale ühe saaja kaupa, siis tead probleemi juba: see ei skaleeru üle umbes kümne inimese, enne kui muutub terveks pärastlõunaks nimede ja e-kirjade kopeerimist-kleepimist. 40-liikmeline bootcamp’i rühm, 500 konverentsi osaleja nimekiri või 5000 inimese ettevõttekoolituse käivitamine — kõik vajavad sama: laadi üles nimekiri, vali märk, klõpsa Väljasta ja mine minema.

Just seda teebki Bulk Credentials aadressil https://badges.ninja. See juhend katab kogu protsessi: CSV-faili ettevalmistamise, partii seadistamise, selle töö jälgimise ja reaalse maailma sassis olukordade lahendamise — trükiveaga saaja rida, poole peal katkev partii või programm, mis soovib väljastada samamoodi oma süsteemidest, mitte juhtpaneelilt.

Enne alustamist: mida sul vaja on

Kaks asja, mis mõlemad on sul tõenäoliselt juba olemas:

  1. Märk — kujundatud üks kord visuaalses kujundajas ja korduvkasutatud iga saaja jaoks partiis. Kui sa pole veel ühtegi loonud, vaata meie juhendit oma esimese kontrollitava tunnistuse kujundamise kohta.
  2. Saajate CSV — nimi, e-post ja (valikuliselt) väljastuskuupäev. See ongi kogu skeem.

Sul pole vaja iga saaja jaoks eraldi väljaandja kontot, meiliserverit ega mingit koodi. Kõik selles jaotises toimub juhtpaneelil.

Samm 1: Valmista ette CSV-fail

Saajate nimekirja vorming on tahtlikult minimaalne:

name,email,issued_on
Maria Gonzalez,maria@example.com,2026-07-01
David Kim,david@example.com,2026-07-01
Priya Patel,priya@example.com,
  • name — kohustuslik. Täidab saaja välja väitel (assertion) ja tunnistusel.
  • email — kohustuslik. Sellest saab saaja identiteet Open Badge v2.0 väitel — räsitud iga tunnistuse jaoks eraldi soolaga enne salvestamist, seda ei hoita kunagi lihttekstis.
  • issued_on — valikuline. Jäta tühjaks ja partii kasutab hetke, mil iga rida töödeldakse; määra see selgesõnaliselt, kui täidad tagasiulatuvalt rühma, mis tegelikult lõpetas eelmisel kuul.

Enamik programmide omanikke ekspordib selle otse sealt, kus nad lõpetamisi juba jälgivad — Airtable, Google Sheets, juhendaja üle antud tabel või LMS-i hindeteraamatust välja tõmmatud CSV. Erilist ekspordiriista pole vaja; sobib iga CSV nende kolme veeruga.

Levinud CSV lõksud (ja kuidas eelvaade need püüab)

Reaalsetes saajate nimekirjades tuleb pidevalt ette käputäis probleeme, tavaliselt seetõttu, et CSV pandi kokku kahe või kolme lähtelehe ühendamisel:

  • Lõputühikud e-posti aadressides — PDF-i nimekirjast või Google’i vormi ekspordist kopeerimine kannab sageli kaasas nähtamatut tühikut. Tabelilahtris näeb see korrektne välja, kuid üleslaadimisel ei läbi e-posti valideerimist.
  • Dubleeritud read — sama saaja esineb kaks korda, sest rühma nimekiri ja hiliste registreerunute nimekiri ühendati ilma duplikaate eemaldamata.
  • Ebajärjekindlad kuupäevavormingud — üks veerg 2026-07-01 segamini 07/01/2026-ga teisest ekspordist. Püsi ISO 8601 (YYYY-MM-DD) juures ja see kaob täielikult.
  • Päiste suur- ja väiketähtede mittevastavusedEmail versus email versus E-mail. Parser on levinud variantide suhtes leplik, kuid täiesti kohandatud päisenime ei kaardistata automaatselt.

Ükski neist pole saatuslik — eelvaate samm (allpool) toob iga ühe esile enne, kui midagi väljastatakse, nii et parandus on „muuda tabelit, laadi uuesti üles“, mitte „selgita välja, kes 3000 saajast sai katkise märgi“.

Samm 2: Seadista partii

Ava juhtpaneelil Credentials → Bulk Credentials ja vali märk, mida väljastad. See on samm, kus seadistad kõik, mis kehtib kogu partii kohta: märgi enda, ühise väljastuskuupäeva, kui sa ei pane CSV-sse ridade kaupa kuupäevi, ja (kui su väljaandja profiilil selline on) LinkedIni organisatsiooni ID, mis lubab igal saajal lisada tunnistuse oma profiilile ühe klõpsuga.

Bulk Credentials — samm 1, seadistamine

See on hea hetk üle kontrollida, kas märk, mille valisid, on lõplik versioon — saajad näevad pilti ja kriteeriume, mis on sellele lisatud väljastamise hetkel, mitte seda, mida sa hiljem uuendad.

Samm 3: Laadi üles ja vaata eelvaadet

Kukuta oma CSV sisse ja platvorm sõelub selle, näitab sulle eelvaate tabelit ja märgistab kõik, mida ta ei suuda töödelda — puuduva e-posti, vigase kuupäeva, dubleeritud rea. Midagi ei väljastata enne, kui sa eelvaate kinnitad.

Bulk Credentials — samm 2, üleslaadimine

See eelvaate samm on tähtsam, kui paistab. Trükiviga 2000-realise CSV ühes reas on silmaga kerge kahe silma vahele jätta ja seda on palju odavam püüda enne, kui 1999 õiget rida on juba väljastatud, kui üritada seda hiljem lahti harutada. Paranda märgistatud read oma tabelis, laadi uuesti üles ja eelvaade uueneb.

Samm 4: Käivita partii

Vajuta Väljasta ja partii hakkab töötlema. Edenemisriba jälgib lõpetatud ridu võrreldes järelejäänutega ning partii jookseb serveri poolel — sa ei pea vahekaarti lahti hoidma ja sülearvuti sulgemine partii keskel ei kaota su kohta.

Seda viimast osa tasub selgelt välja öelda, sest just see detail suurte rühmade puhul tegelikult loeb: partii olek elab serveris, mitte su brauseris. Kui su ühendus katkeb, sülearvuti uinub või sa lihtsalt sulged vahekaardi, sest algab koosolek, jätkab partii tööd (või jätkub täpselt sealt, kus pooleli jäi, kui sa selle peatasid), selle asemel et alustada nullist. 40-liikmelise bootcamp’i rühma jaoks on see tore lisa. 5000-realise ettevõttekäivituse jaoks on see vahe „see lihtsalt töötab“ ja „keegi peab kakskümmend minutit brauseri vahekaardi kallal lapsehoidjat mängima“ vahel.

Töötavat partiid saad ka tahtlikult peatada — ütleme, keegi märgib, et märgi kriteeriumide tekst vajab 3000-realise jooksu keskel näpistamist — paranda probleem ja jätka juba lõpetatud ridu uuesti väljastamata.

Samm 5: Käsitle tõrkeid

Reaalsetel saajate nimekirjadel on halbu ridu: trükiveaga e-posti domeen, nimeväli, mis on tegelikult tühi, dubleeritud kirje kahe eksporditud lehe ühendamisest. Kui rida ebaõnnestub, partii ei peatu — see jätkab ülejäänu töötlemist ja märgistab tõrke hilisemaks ülevaatuseks. Sa saad tulemuste ekspordi, mis näitab täpselt, millised read õnnestusid ja millised mitte, nii et saad parandada ainult ebaõnnestunud read ja käivitada väikese järelpartii, selle asemel et kogu nimekirja uuesti üle kontrollida.

See on oluline CSV-ekspordi harjumuse jaoks, mis on tunnistuste juhtpaneelil juba tavaline — igal hetkel saad tõmmata CSV sellest, mis tegelikult väljastati, kõrvutada seda oma lähtenimekirjaga ja teada täpselt, kes veel märki vajab.

API tee: sama protsess, ilma juhtpaneelita

Kõik ülal eeldab, et keegi istub juhtpaneeli taga ja klõpsib viisardist läbi. Kui su lõpetamised elavad juba mõnes süsteemis — LMS, CRM, tabeliautomaatika — saad sama masstunnistuste protsessi juhtida otse Awards API-st.

Minimaalne saajapõhine väljastuskutse näeb välja selline:

curl -X POST https://api.badges.ninja/awards \
  -H "X-Api-Key: bws_1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d" \
  -H "Content-Type: application/json" \
  -d '{
    "badgeId": "badge_9f8e7d6c5b4a",
    "recipient": {
      "name": "Maria Gonzalez",
      "email": "maria@example.com"
    },
    "issuedOn": "2026-07-01T00:00:00Z"
  }'

Või Pythonis, käies läbi ridu, mis on loetud samast CSV-st, mille sa muidu käsitsi üles laadiksid:

import csv
import requests

API_KEY = "bws_1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d"
BADGE_ID = "badge_9f8e7d6c5b4a"

with open("recipients.csv") as f:
    for row in csv.DictReader(f):
        requests.post(
            "https://api.badges.ninja/awards",
            headers={"X-Api-Key": API_KEY},
            json={
                "badgeId": BADGE_ID,
                "recipient": {"name": row["name"], "email": row["email"]},
                "issuedOn": row.get("issued_on") or None,
            },
        )

Selle poole tasub haarata siis, kui tunnistuse väljastamist käivitab midagi täiesti muud — kursuse lõpetamise veebihaak, CRM-i etapi muutus, vormi esitamine — mitte inimene, kes käsitsi CSV-d ekspordib. Autentimist ja täielikku päringu/vastuse kuju katame API kiirjuhendis. Iga sel viisil loodud tunnistus on identne juhtpaneeli viisardi kaudu looduga: sama Open Badge v2.0 väide, sama kontrolli-URL, sama PDF-tunnistus.

Juhtpaneeli viisard versus API: kumba sa tegelikult tahad?

Dashboard Bulk CredentialsAwards API
Parim jaoksÜhekordne või aeg-ajalt korduv partii (rühma lõpetamine, konverentsil osalemine)Korduv päästik (iga kursuse lõpetamine, iga ost)
Seadistuse vaevPuudub — ekspordi CSV, laadi see ülesÜhekordne integratsioonitöö (veebihaak või skript)
Kes seda käitabProgrammi omanik, ilma kooditaKes iganes omab päästiku süsteemi
Tõrgete käsitlemineEelvaade + rea kaupa tulemuste eksportHTTP-olek iga päringu kohta, käsitletud sinu enda korduskatse loogikas

Enamik meeskondi alustab juhtpaneeli viisardist, sest see ei nõua midagi peale CSV, ja liigub API-le alles siis, kui sama partii on käsitsi kolm-neli korda läbi jooksutatud ja muster on ilmselgelt automatiseerimist väärt.

Privaatsus: mida tegelikult salvestatakse

Nimede ja e-kirjadega CSV on isikuandmed ja tasub teada, mis sellega pärast üleslaadimist juhtub. Saaja e-posti aadressi ei salvestata kunagi lihttekstis tunnistusele endale — see räsitakse iga tunnistuse jaoks eraldi soolaga Open Badge v2.0 väite osana, järgides spetsifikatsiooni hashed saaja identiteedi vormingut. Just seda räsi kontrollija kontrollib, mitte toorest aadressi. Nimeväli salvestatakse nii, nagu see sisestati, sest see peaks olema nähtav tunnistusel ja kontrollilehel. Kui rida vajab pärast väljastamist parandamist — kõige sagedamini valesti kirjutatud nimi — saad üksiku tunnistuse tunnistuste juhtpaneelilt muuta või tühistada, puudutamata ülejäänud partiid.

Pärast partiid: teavita saajaid

Märgi väljastamine ja saaja sellest teavitamine on kaks eri sammu. Kui su CSV ei käivita juba e-kirja sinu enda süsteemi kaudu, laseb juhtpaneeli massijagamise protsess sul mitmikvalida just loodud tunnistused ja saata neile kõigile ühe korraga isikupärastatud jagamiskirja — vaata jagamiskirjade massisaatmist täieliku juhendi jaoks, sealhulgas kuidas saajapõhine isikupärastamine (nimi, märgi pilt, kontrollilink) automaatselt asendatakse.

Millal Bulk Credentials on õige tööriist

Massväljastus on õige valik alati, kui „partii“ raamistus sobib reaalsesse maailma: rühm, mis lõpetas samal päeval, konverents, mis just lõppes, koolituse käivitamine, mis jõuab vastavuse tähtajani. Kui aga väljastad ühekordseid tunnistusi, kui üksikud verstapostid saavutatakse — üks edutamine, üks lõpetatud projekt — on üksiktunnistuse vorm kiirem kui ühe reaga CSV kokkupanek.

Kõige korduva jaoks — sama kursus, mis toimub iga kuu, jooksev sisseelamise torustik — tasub ülaltoodud API tee üks kord seadistada. See muudab „käivita masstunnistused iga rühma jaoks käsitsi“ „lõpetamised väljastavad tunnistused juba automaatselt“-ks, mis on selle töövoo versioon, mida enamik programmide omanikke pärast teist või kolmandat käsitsi partiid tegelikult soovib.

Valmis väljastama oma esimest kontrollitavat tunnistust? Alusta tasuta aadressil badges.ninja — visuaalne kujundaja, avalik kontrollileht, PDF-tunnistus, Open Badge v2.0 väljund. Krediitkaarti pole vaja.

Nacho Coll

Autorist

Founder & Engineer at Badges Ninja

Nacho founded Badges Ninja to make issuing verifiable digital credentials as simple as a single API call — Open Badge v2.0 badges and certificates, minted, hosted, and verifiable without standing up your own issuer infrastructure. Writes about the Open Badges spec, credential verification, and running a credentialing platform serverless on AWS, from the operator side of the wire.

Tagasi blogisse

Seotud artiklid