CertFusion

How to Create Race Certificates in Bulk

Answer: To create race certificates in bulk, upload a CSV of your race results to CertFusion, map the name, email and finish time columns to your certificate design, and issue the whole list in one click. Every runner gets a personalised certificate with their own finish time, credential ID and verification link.

A 500-person fun run produces 500 certificates. Doing that one at a time is a day of work. Doing it from a spreadsheet takes about two minutes, and this guide walks through exactly that — including how to print each runner's finish time on their own certificate.

What you need before you start

  • A CSV of your race results. One row per finisher. At minimum you need a name column. An email column and any extra columns you want on the certificate (finish time, category, bib number) are optional but useful.
  • A certificate design in CertFusion. Any template will do; this guide uses a race participation design.
  • Nothing else. No mail merge, no design tool, no per-runner setup.

Getting your results file ready

Export your finishers from your timing system as a CSV. Three columns are enough:

Race results CSV with name, email and finish_time columns

A 500-row race results file. Column headers are name, email and finish_time.

Two things worth knowing:

  • Missing emails are fine. If a runner didn't give you an email address, put in a placeholder like dummy@example.com. You can choose not to send emails when you issue, and hand the certificate over yourself instead.
  • Header rows are skipped automatically. CertFusion will report the header as one skipped row on import. That's expected.

Step 1 — Open your race certificate design

In CertFusion, go to Certificate Templates and open the design you want to use.

CertFusion Certificate Templates grid with a Race Certificate design selected

Click Edit design on the certificate you want to issue in bulk.

The design editor opens with a Properties panel on the left. [recipient.name] is already available and, in this template, already placed on the certificate. That handles the runner's name. Now for the finish time.

Step 2 — Add a label for the finish time

Open the Texts panel and click Add text. A "Sample Text" box appears on the canvas.

This box is only the static label. Type Finish Time:, drop the font size down (18px works well against a 32px name), and drag it into position under the name line.

Step 3 — Create a custom finish time field

The label is static. The value needs to change per runner, which means a custom property.

Go back to Properties and click Add Custom Property. Type finishtime — letters only, no spaces or special characters.

Add Custom Property dialog with finishtime typed into the field CertFusion shows you the resulting placeholder: [custom.finishtime].

Click Add. The new property appears in your Properties list and can be dropped onto the certificate like any other field.

Place [custom.finishtime] next to your Finish Time: label, match the font size, and line the two up.

Certificate design with recipient name and a Finish Time custom field
placed The design now has two dynamic fields: [recipient.name] and [custom.finishtime].

Click Save Design and wait for the "Changes have been saved" confirmation. Whatever ends up in that CSV column will now print here, for every runner.

[INTERNAL LINK: using custom fields on certificates → /blog/custom-certificate-fields]

Step 4 — Add your recipients

Switch to the Recipients tab. It's empty, so click Add Recipients.

You get three routes: add people one at a time, import a CSV, or pull them from one of ten connected tools (Zoom, Webex, Typeform, Tally, Youform, Jotform, Luma, Google Forms, Kit, Zapier). For race results, CSV is the one you want.

Add Recipients modal showing Add Manually, Import CSV and connected tools Click Import CSV.

Step 5 — Upload the CSV

Click Choose file, pick your results file, then click Upload & Preview.

Upload a CSV panel with race_results_500.csv chosen The sidebar confirms which custom fields this design can accept — here, [custom.finishtime].

Step 6 — Map your columns

CertFusion shows a preview of your file and asks what each column is. Name and email are required. Custom fields are optional.

Map CSV Columns screen with a dropdown showing Recipient Name, Email Address and custom.finishtime Map column 1 to Recipient Name, column 2 to Email Address, and column 3 to [custom.finishtime].

That third mapping is the whole point of the custom field — it connects a spreadsheet column to a spot on the certificate.

Step 7 — Import all 500 runners

Click Import Recipients.

Success message: 500 recipients created, 1 skipped 500 created, 1 skipped. The skipped row is the CSV header.

Everyone lands in the recipients list with a Pending status. Nothing has been issued yet, so this is a good moment to spot-check a few rows.

Step 8 — Issue every certificate at once

Click Select all to select all 500 recipients, then click Issue Certificates.

Recipients list with 500 recipients selected The banner confirms how many recipients are selected before you issue.

CertFusion asks whether you want to email the certificates.

Issue Certificates dialog asking whether to email certificates, with No selected Choose Yes to email everyone a link automatically, or No to distribute the certificates yourself.

Pick No if your email column contains placeholders, or if you'd rather share links through your own results page. Then click Confirm.

Refresh the list and every row reads Issued. Each one now has its own certificate, credential ID and verification page.

What the runner receives

Each certificate gets a public credential page: the runner's name, a credential ID, a download button, a share link and an Add to LinkedIn Profile button.

Public credential page showing an issued race certificate with a finish time The credential page is what you link to from your results email or race website.

And the finish time is on the certificate itself, pulled straight from the spreadsheet row.

Close-up of the certificate showing the runner's name and Finish Time 03:25:00 One CSV column, 500 different values, zero manual edits.

Frequently asked questions

How many race certificates can I create at once? There's no per-import cap on rows — this walkthrough imports 500 in one file. What limits you is your plan's monthly certificate quota, which you can see in the top bar of your dashboard.

Can I add more than one custom field? Yes. Create a custom property for each extra column you want on the certificate — category, bib number, chip time, age group — and map them all during the CSV import.

What if some runners have no email address? Import them with a placeholder address and choose No when asked whether to email certificates. You'll still get a certificate and a shareable link for every runner, which you can distribute however you like.

Can I re-issue or fix a certificate after import? Yes. Recipients stay in the list after issuing, so you can correct a typo in a name or finish time and issue that individual certificate again.

Do runners need a CertFusion account to see their certificate? No. The credential page is public. Anyone with the link can view, verify and download the certificate.

Can I use the same design for next year's race? Yes. The design and its custom fields are saved on the template. Next year you upload a new CSV and issue again — the setup is one-time.

Schema suggestion: this post fits HowTo schema for the eight numbered steps plus FAQPage schema for the questions above. Mark up each step with its name, text and the corresponding screenshot as image.

Prefer to watch?

The same eight steps, start to finish, in two minutes — from race results CSV to 500 issued certificates.

https://youtu.be/GwgWDhVw-70

Share this article

Table of Contents