Како да издате Open Badges из CSV датотеке за мање од 5 минута

Корак по корак: отпремите CSV са примаоцима, изаберите значку и притисните Издај. Паузирајте и наставите усред серије, поновите неуспеле редове, извезите резултате. Ради за групе од 10 или 10.000.

Nacho Coll Аутор Ажурирано 9 мин читања
Корак по корак: отпремите CSV са примаоцима, изаберите значку и притисните Издај. Паузирајте и наставите усред серије, поновите неуспеле редове, извезите резултате. Ради за групе од 10 или 10.000.

Ако сте икада издавали акредитиве групи један по један прималац, већ знате у чему је проблем: то се не скалира преко отприлике десет људи пре него што се претвори у цело поподне копирања и лепљења имена и имејлова. Група од 40 људи на буткампу, списак од 500 учесника конференције или увођење корпоративне обуке за 5.000 људи — свима треба исто: отпремите списак, изаберите значку, кликните Издај и одете.

Управо то ради Bulk Credentials на https://badges.ninja. Овај водич покрива цео ток рада: припрему CSV датотеке, конфигурисање серије, праћење њеног извршавања и решавање неуредних ситуација из стварног света — реда са примаоцем у коме је словна грешка, серије која се прекине на пола пута или програма који жели да издаје на исти начин из сопствених система уместо са контролне табле.

Пре него што почнете: шта вам треба

Две ствари, а обе вероватно већ имате:

  1. Значка — дизајнирана једном у визуелном дизајнеру и поново искоришћена за сваког примаоца у серији. Ако је још нисте направили, погледајте наш водич за дизајнирање вашег првог акредитива са могућношћу провере.
  2. CSV са примаоцима — име, имејл и (опционо) датум издавања. То је цела шема.

Не треба вам издавалачки налог по примаоцу, сервер за пошту нити било какав код. Све у овом одељку дешава се на контролној табли.

Корак 1: Припремите CSV датотеку

Формат листе примаоца намерно је минималан:

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 — обавезно. Попуњава поље примаоца на тврдњи (assertion) и на сертификату.
  • email — обавезно. Ово постаје идентитет примаоца на Open Badge v2.0 тврдњи — хеширано са посебном соли по акредитиву пре него што се сачува, никада се не држи у чистом тексту.
  • issued_on — опционо. Оставите празно и серија користи тренутак у коме се сваки ред обрађује; поставите га изричито ако накнадно уносите групу која је заправо завршила прошлог месеца.

Већина власника програма ово извози директно одатле где већ прате завршетке — Airtable, Google Sheets, табелу коју је предао инструктор или CSV извучен из евиденције оцена у LMS-у. Није потребан никакав посебан алат за извоз; ради било који CSV са те три колоне.

Уобичајене замке са CSV-ом (и како их преглед хвата)

Неколико проблема стално се појављује у стварним листама примаоца, обично зато што је CSV састављен спајањем два или три изворна листа:

  • Празни размаци на крају имејл адреса — копирање из PDF списка или извоза из Google обрасца често носи невидљиви размак. Изгледа уредно у ћелији табеле, али не пролази проверу имејла при отпремању.
  • Дуплирани редови — исти прималац се појављује двапут јер су списак групе и списак касних пријава спојени без уклањања дупликата.
  • Недоследни формати датума — једна колона са 2026-07-01 помешана са 07/01/2026 из другог извоза. Држите се ISO 8601 (YYYY-MM-DD) и то потпуно нестаје.
  • Неподударања у величини слова заглављаEmail наспрам email наспрам E-mail. Парсер је попустљив према уобичајеним варијантама, али потпуно прилагођено име заглавља неће се аутоматски мапирати.

Ниједан од ових проблема није кобан — корак прегледа (испод) износи сваки од њих на видело пре него што се било шта изда, па је исправка „уреди табелу, поново отпреми“ уместо „откриј ко је од 3.000 примаоца добио покварену значку“.

Корак 2: Конфигуришите серију

Са контролне табле отворите Credentials → Bulk Credentials и изаберите значку коју издајете. Ово је корак у коме постављате све што се односи на целу серију: саму значку, заједнички датум издавања ако не стављате датуме по реду у CSV и (ако га ваш издавалачки профил има) LinkedIn организациони ID који ће сваком примаоцу омогућити да акредитив дода на свој профил једним кликом.

Bulk Credentials — корак 1, конфигурација

Ово је добар тренутак да још једном проверите да ли је значка коју сте изабрали коначна верзија — примаоци ће видети слику и критеријуме који су јој приложени у тренутку издавања, а не оно што касније ажурирате.

Корак 3: Отпремање и преглед

Убаците свој CSV и платформа га рашчлањује, приказује вам табелу прегледа и означава све што не може да обради — недостајући имејл, неисправан датум, дуплирани ред. Ништа се не издаје док не потврдите преглед.

Bulk Credentials — корак 2, отпремање

Овај корак прегледа важнији је него што изгледа. Словну грешку у једном реду CSV-а од 2.000 редова лако је превидети оком, а много је јефтиније ухватити је пре него што је 1.999 исправних редова већ издато него покушати то накнадно поништити. Исправите означене редове у својој табели, поново отпремите и преглед се ажурира.

Корак 4: Покрените серију

Кликните Издај и серија почиње да се обрађује. Трака напретка прати завршене наспрам преосталих редова, а серија се извршава на серверу — не морате да држите картицу отвореном, а затварање лаптопа усред серије не губи ваше место.

Тај последњи део вреди јасно нагласити јер је то детаљ који заправо значи за велике групе: стање серије живи на серверу, а не у вашем прегледачу. Ако вам веза падне, лаптоп заспи или једноставно затворите картицу јер почиње састанак, серија наставља да ради (или се наставља тачно тамо где је стала ако сте је паузирали) уместо да почне испочетка. За групу од 40 људи на буткампу то је лепа предност. За увођење од 5.000 редова у компанији то је разлика између „једноставно ради“ и „неко мора да чува картицу прегледача двадесет минута“.

Такође можете намерно да паузирате серију која се извршава — рецимо, неко примети да текст критеријума значке треба дораду на пола серије од 3.000 редова — решите проблем и наставите без поновног издавања редова који су већ завршени.

Корак 5: Решавање неуспеха

Стварне листе примаоца имају лоше редове: имејл са словном грешком у домену, поље имена које је заправо празно, двоструки унос због спајања два извезена листа. Када ред не успе, серија се не зауставља — наставља да обрађује остатак и означава неуспех за накнадни преглед. Добијате извоз резултата који тачно показује који су редови успели, а који нису, па можете да исправите само неуспеле редове и поново покренете малу накнадну серију уместо да поново проверавате целу листу.

Ово је важно за навику извоза CSV-а која је већ уобичајена на контролној табли акредитива — у било ком тренутку можете да извучете CSV онога што је заправо издато, упоредите га са изворним списком и тачно знате коме још треба значка.

API пут: исти ток, без контролне табле

Све наведено претпоставља да неко седи за контролном таблом и пролази кроз чаробњак. Ако ваши завршеци већ живе у неком систему — LMS-у, CRM-у, аутоматизацији табеле — исти ток групних акредитива можете водити директно из Awards API-ја.

Минималан позив за издавање по примаоцу изгледа овако:

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"
  }'

Или у Python-у, пролазећи кроз редове прочитане из истог CSV-а који бисте иначе ручно отпремили:

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,
            },
        )

Овоме вреди посегнути када издавање акредитива покреће нешто сасвим друго — webhook за завршетак курса, промена фазе у CRM-у, слање обрасца — уместо да особа ручно извози CSV. Аутентификацију и потпун облик захтева/одговора покривамо у брзом водичу за API. Сваки акредитив креиран на овај начин идентичан је оном креираном кроз чаробњак на контролној табли: иста Open Badge v2.0 тврдња, исти URL за проверу, исти PDF сертификат.

Чаробњак на контролној табли наспрам API-ја: шта заправо желите?

Dashboard Bulk CredentialsAwards API
Најбоље заЈеднократну или повремену серију (дипломирање групе, присуство конференцији)Понављајући окидач (сваки завршетак курса, свака куповина)
Труд при подешавањуНишта — извезите CSV, отпремите гаЈеднократан интеграциони посао (webhook или скрипта)
Ко га покрећеВласник програма, без кодаКо год је власник система који покреће окидач
Руковање неуспесимаПреглед + извоз резултата по редуHTTP статус по захтеву, обрађен у вашој сопственој логици поновних покушаја

Већина тимова почиње са чаробњаком на контролној табли јер не захтева ништа осим CSV-а, а на API прелазе тек након што је иста серија ручно покренута три или четири пута и када је образац очигледно вредан аутоматизације.

Приватност: шта се заправо чува

CSV са именима и имејловима је лични податак и вреди знати шта се с њим дешава након отпремања. Имејл адреса примаоца никада се не чува у чистом тексту на самом акредитиву — хеширана је са посебном соли по акредитиву као део Open Badge v2.0 тврдње, пратећи формат идентитета примаоца hashed из спецификације. Тај хеш је оно што верификатор проверава, а не сирову адресу. Поље имена чува се онако како је унесено јер је намењено да буде видљиво на сертификату и страници за проверу. Ако ред треба исправити након издавања — најчешће погрешно написано име — можете уредити или опозвати појединачни акредитив са контролне табле акредитива без дирања остатка серије.

После серије: обавестите примаоце

Издавање значке и обавештавање примаоца о њој два су различита корака. Ако ваш CSV већ не покреће имејл кроз ваш сопствени систем, ток групног дељења на контролној табли омогућава вам да вишеструко изаберете акредитиве које сте управо креирали и пошаљете персонализовани имејл за дељење свима њима у једном пролазу — погледајте групно слање имејлова за дељење за цео водич, укључујући како се персонализација по примаоцу (име, слика значке, веза за проверу) аутоматски замењује.

Када је Bulk Credentials прави алат

Групно издавање је прави избор кад год оквир „серије“ одговара стварном свету: група која је завршила истог дана, конференција која се управо завршила, увођење обуке које стиже до рока за усклађеност. Ако уместо тога издајете појединачне акредитиве како се достижу индивидуалне прекретнице — једно унапређење, један завршени пројекат — образац за појединачни акредитив бржи је од састављања CSV-а са једним редом.

За било шта понављајуће — исти курс који се одржава сваког месеца, ток постепеног увођења — API пут изнад вреди подесити једном. Он претвара „ручно покрени групне акредитиве за сваку групу“ у „завршеци већ аутоматски издају акредитиве“, што је верзија овог тока рада коју већина власника програма заправо жели након друге или треће ручне серије.

Спремни да издате свој први акредитив са могућношћу провере? Почните бесплатно на badges.ninja — визуелни дизајнер, јавна страница за проверу, PDF сертификат, Open Badge v2.0 излаз. Није потребна кредитна картица.

Nacho Coll

О аутору

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.

Назад на блог

Повезани чланци