Blood donation registration form for your drive

Updated 2026-10-30

A blood drive needs a good list before the day. I would rather give donors one link to say who they are, when they can come and whether they have given before. The team plans staffing from one sheet.

Before the drive

Fix the date, the place and the hours your team can work. Edit the day and time lists to match. Point donors to your blood service's own rules in the form description. The form asks for no health details, and staff check eligibility on the day. Check your local privacy rules before collecting health data. This is a form, not medical advice. Set close_at to the day before the drive.

While sign-ups come in

Donors open the link, or hand it to their AI, which might ask: "Which day would you like to come?" Then "What time of day suits you?" Then "Have you given blood before?" It shows the answers and sends only after a yes. See agent-fillable forms.

After sign-ups close

The form lists preferences, not booked slots. Download the CSV, assign times and message each donor yourself. Browse forms for nonprofits and forms for clinics. Ask supporters for snacks for donors with a bake sale sign up sheet, and feed the volunteer team using a meal train sign-up.

Questions

Does the form check whether someone can give blood?

No. It collects names and preferences only. Staff check eligibility on the day with your blood service's rules. Point donors to those rules in the form description.

How do I plan staff for each time of day?

Download the CSV, filter the time_of_day column and count each group. Compare the counts with your team's hours, then message donors who need a different time.

How should I treat first-time donors?

The given_before column shows first-timers. Sort by it, plan a little extra time for them, and put an experienced volunteer on their first visit.

Try the form

Live demo ยท nothing is saved

Sign up for our blood drive

Tell us when you would like to come. This form collects no health details. Our team checks if you can give when you arrive.

Which day would you like to come? (required)
What time of day suits you? (required)
Have you given blood before? (required)
How should we reach you about your time?
I could also help run the drive
I am old enough to give under the rules for this drive (required)
I understand staff will check if I can give when I arrive (required)

Or paste the JSON

Give this to your AI. It needs the AI Form API MCP server or an API key. It makes the form and sends you the link.

text
Create this form with the AI Form API create_form tool (or POST https://aiformapi.com/v1/forms with my API key). Then reply with the public_url.

{
  "title": "Sign up for our blood drive",
  "description": "Tell us when you would like to come. This form collects no health details. Our team checks if you can give when you arrive.",
  "fields": [
    {
      "id": "donor_name",
      "label": "Your full name",
      "type": "short_text",
      "required": true,
      "max_length": 150
    },
    {
      "id": "donor_phone",
      "label": "Your phone",
      "type": "phone",
      "required": true
    },
    {
      "id": "donor_email",
      "label": "Your email",
      "type": "email"
    },
    {
      "id": "drive_day",
      "label": "Which day would you like to come?",
      "type": "single_choice",
      "required": true,
      "options": [
        "Day one",
        "Day two",
        "Either day"
      ]
    },
    {
      "id": "time_of_day",
      "label": "What time of day suits you?",
      "type": "single_choice",
      "required": true,
      "options": [
        "Morning",
        "Midday",
        "Afternoon",
        "Early evening",
        "Any time"
      ]
    },
    {
      "id": "given_before",
      "label": "Have you given blood before?",
      "type": "single_choice",
      "required": true,
      "options": [
        "Yes, regularly",
        "Yes, once or twice",
        "No, this will be my first time"
      ]
    },
    {
      "id": "friends_coming",
      "label": "How many friends are coming with you?",
      "type": "number",
      "min": 0,
      "max": 5
    },
    {
      "id": "help_needed",
      "label": "Access or language help you would like",
      "type": "short_text",
      "max_length": 250
    },
    {
      "id": "reach_me_by",
      "label": "How should we reach you about your time?",
      "type": "single_choice",
      "options": [
        "Phone call",
        "Text message",
        "Email"
      ]
    },
    {
      "id": "can_help_on_day",
      "label": "I could also help run the drive",
      "type": "checkbox"
    },
    {
      "id": "age_rule_met",
      "label": "I am old enough to give under the rules for this drive",
      "type": "checkbox",
      "required": true
    },
    {
      "id": "checks_on_the_day",
      "label": "I understand staff will check if I can give when I arrive",
      "type": "checkbox",
      "required": true
    }
  ]
}

Or call the API

bash
curl -X POST https://aiformapi.com/v1/forms \
  -H "Authorization: Bearer $AIFORMAPI_KEY" \
  -H "Content-Type: application/json" \
  -d '{"title":"Sign up for our blood drive","description":"Tell us when you would like to come. This form collects no health details. Our team checks if you can give when you arrive.","fields":[{"id":"donor_name","label":"Your full name","type":"short_text","required":true,"max_length":150},{"id":"donor_phone","label":"Your phone","type":"phone","required":true},{"id":"donor_email","label":"Your email","type":"email"},{"id":"drive_day","label":"Which day would you like to come?","type":"single_choice","required":true,"options":["Day one","Day two","Either day"]},{"id":"time_of_day","label":"What time of day suits you?","type":"single_choice","required":true,"options":["Morning","Midday","Afternoon","Early evening","Any time"]},{"id":"given_before","label":"Have you given blood before?","type":"single_choice","required":true,"options":["Yes, regularly","Yes, once or twice","No, this will be my first time"]},{"id":"friends_coming","label":"How many friends are coming with you?","type":"number","min":0,"max":5},{"id":"help_needed","label":"Access or language help you would like","type":"short_text","max_length":250},{"id":"reach_me_by","label":"How should we reach you about your time?","type":"single_choice","options":["Phone call","Text message","Email"]},{"id":"can_help_on_day","label":"I could also help run the drive","type":"checkbox"},{"id":"age_rule_met","label":"I am old enough to give under the rules for this drive","type":"checkbox","required":true},{"id":"checks_on_the_day","label":"I understand staff will check if I can give when I arrive","type":"checkbox","required":true}]}'

JSON definition

json
{
  "title": "Sign up for our blood drive",
  "description": "Tell us when you would like to come. This form collects no health details. Our team checks if you can give when you arrive.",
  "fields": [
    {
      "id": "donor_name",
      "label": "Your full name",
      "type": "short_text",
      "required": true,
      "max_length": 150
    },
    {
      "id": "donor_phone",
      "label": "Your phone",
      "type": "phone",
      "required": true
    },
    {
      "id": "donor_email",
      "label": "Your email",
      "type": "email"
    },
    {
      "id": "drive_day",
      "label": "Which day would you like to come?",
      "type": "single_choice",
      "required": true,
      "options": [
        "Day one",
        "Day two",
        "Either day"
      ]
    },
    {
      "id": "time_of_day",
      "label": "What time of day suits you?",
      "type": "single_choice",
      "required": true,
      "options": [
        "Morning",
        "Midday",
        "Afternoon",
        "Early evening",
        "Any time"
      ]
    },
    {
      "id": "given_before",
      "label": "Have you given blood before?",
      "type": "single_choice",
      "required": true,
      "options": [
        "Yes, regularly",
        "Yes, once or twice",
        "No, this will be my first time"
      ]
    },
    {
      "id": "friends_coming",
      "label": "How many friends are coming with you?",
      "type": "number",
      "min": 0,
      "max": 5
    },
    {
      "id": "help_needed",
      "label": "Access or language help you would like",
      "type": "short_text",
      "max_length": 250
    },
    {
      "id": "reach_me_by",
      "label": "How should we reach you about your time?",
      "type": "single_choice",
      "options": [
        "Phone call",
        "Text message",
        "Email"
      ]
    },
    {
      "id": "can_help_on_day",
      "label": "I could also help run the drive",
      "type": "checkbox"
    },
    {
      "id": "age_rule_met",
      "label": "I am old enough to give under the rules for this drive",
      "type": "checkbox",
      "required": true
    },
    {
      "id": "checks_on_the_day",
      "label": "I understand staff will check if I can give when I arrive",
      "type": "checkbox",
      "required": true
    }
  ]
}