Raffle entry form for charity draws

Updated 2026-10-30

Stubs in the bucket often lack a phone number, so a lucky draw can end with no winner. I would rather collect entries in a link. Entrants add their ticket numbers and a way to reach them. Then I draw from a real list.

How it works

  1. The entrant gives a name, phone and email.
  2. They enter the ticket numbers they hold, how many, and who sold them.
  3. They pick the prizes they hope for and how to be reached if they win.
  4. They tick that they meet the age rule and have read the raffle rules.

A short sample chat

An entrant's AI might ask: "What are your ticket numbers?" Then "How would you like us to reach you if you win?" Then "Have you read the raffle rules?" It shows every answer and sends only after a yes. See agent-fillable forms.

Good to know

The form takes no payment and draws no winner. Sell tickets your usual way and run the draw from the CSV. Raffle rules differ from place to place, so this is a form, not legal advice. Check local rules and wording with a professional. See forms for nonprofits and forms for events. Ask local firms for prizes with a sponsorship request form, or run a silent auction bid sheet alongside.

Questions

Can the form pick the winner?

No. It collects entries only. Export the CSV, number the rows and draw yourself in the way your rules describe, with witnesses if they require them.

What if the same ticket number arrives twice?

Sort the CSV by ticket_numbers to spot repeats. Decide in your rules how to treat them, and remove duplicates before the draw.

Can I use it when tickets are sold online?

Yes. Ask entrants to type the numbers from their confirmation. The form does not check that numbers are real, so compare them with your ticket list before the draw.

Try the form

Live demo ยท nothing is saved

Enter our raffle

Add the numbers on your tickets and a way for us to reach you. We take no payment on this form.

Separate the numbers with commas.

Where did you get your tickets?
Which prizes are you hoping for?
How should we reach you if you win?
Will you be at the draw?
My name may be shared if I win
I am old enough to enter under the rules of this raffle (required)
I have read the raffle rules (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": "Enter our raffle",
  "description": "Add the numbers on your tickets and a way for us to reach you. We take no payment on this form.",
  "fields": [
    {
      "id": "entrant_name",
      "label": "Your full name",
      "type": "short_text",
      "required": true,
      "max_length": 150
    },
    {
      "id": "entrant_phone",
      "label": "Your phone",
      "type": "phone",
      "required": true
    },
    {
      "id": "entrant_email",
      "label": "Your email",
      "type": "email",
      "required": true
    },
    {
      "id": "ticket_numbers",
      "label": "The numbers on your tickets",
      "type": "short_text",
      "required": true,
      "help": "Separate the numbers with commas.",
      "max_length": 300
    },
    {
      "id": "tickets_held",
      "label": "How many tickets do you hold?",
      "type": "number",
      "min": 1,
      "max": 500
    },
    {
      "id": "ticket_source",
      "label": "Where did you get your tickets?",
      "type": "single_choice",
      "options": [
        "From a student or member",
        "At the event",
        "On the online page",
        "From a friend"
      ]
    },
    {
      "id": "seller_name",
      "label": "Who sold them to you?",
      "type": "short_text",
      "max_length": 150
    },
    {
      "id": "prize_hopes",
      "label": "Which prizes are you hoping for?",
      "type": "multi_choice",
      "options": [
        "Hamper",
        "Voucher",
        "Weekend away",
        "Gift basket",
        "Any prize"
      ]
    },
    {
      "id": "winner_contact",
      "label": "How should we reach you if you win?",
      "type": "single_choice",
      "options": [
        "Phone call",
        "Text message",
        "Email"
      ]
    },
    {
      "id": "be_at_draw",
      "label": "Will you be at the draw?",
      "type": "single_choice",
      "options": [
        "Yes, I will be there",
        "No, please contact me if I win"
      ]
    },
    {
      "id": "share_if_won",
      "label": "My name may be shared if I win",
      "type": "checkbox"
    },
    {
      "id": "old_enough",
      "label": "I am old enough to enter under the rules of this raffle",
      "type": "checkbox",
      "required": true
    },
    {
      "id": "rules_read",
      "label": "I have read the raffle rules",
      "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":"Enter our raffle","description":"Add the numbers on your tickets and a way for us to reach you. We take no payment on this form.","fields":[{"id":"entrant_name","label":"Your full name","type":"short_text","required":true,"max_length":150},{"id":"entrant_phone","label":"Your phone","type":"phone","required":true},{"id":"entrant_email","label":"Your email","type":"email","required":true},{"id":"ticket_numbers","label":"The numbers on your tickets","type":"short_text","required":true,"help":"Separate the numbers with commas.","max_length":300},{"id":"tickets_held","label":"How many tickets do you hold?","type":"number","min":1,"max":500},{"id":"ticket_source","label":"Where did you get your tickets?","type":"single_choice","options":["From a student or member","At the event","On the online page","From a friend"]},{"id":"seller_name","label":"Who sold them to you?","type":"short_text","max_length":150},{"id":"prize_hopes","label":"Which prizes are you hoping for?","type":"multi_choice","options":["Hamper","Voucher","Weekend away","Gift basket","Any prize"]},{"id":"winner_contact","label":"How should we reach you if you win?","type":"single_choice","options":["Phone call","Text message","Email"]},{"id":"be_at_draw","label":"Will you be at the draw?","type":"single_choice","options":["Yes, I will be there","No, please contact me if I win"]},{"id":"share_if_won","label":"My name may be shared if I win","type":"checkbox"},{"id":"old_enough","label":"I am old enough to enter under the rules of this raffle","type":"checkbox","required":true},{"id":"rules_read","label":"I have read the raffle rules","type":"checkbox","required":true}]}'

JSON definition

json
{
  "title": "Enter our raffle",
  "description": "Add the numbers on your tickets and a way for us to reach you. We take no payment on this form.",
  "fields": [
    {
      "id": "entrant_name",
      "label": "Your full name",
      "type": "short_text",
      "required": true,
      "max_length": 150
    },
    {
      "id": "entrant_phone",
      "label": "Your phone",
      "type": "phone",
      "required": true
    },
    {
      "id": "entrant_email",
      "label": "Your email",
      "type": "email",
      "required": true
    },
    {
      "id": "ticket_numbers",
      "label": "The numbers on your tickets",
      "type": "short_text",
      "required": true,
      "help": "Separate the numbers with commas.",
      "max_length": 300
    },
    {
      "id": "tickets_held",
      "label": "How many tickets do you hold?",
      "type": "number",
      "min": 1,
      "max": 500
    },
    {
      "id": "ticket_source",
      "label": "Where did you get your tickets?",
      "type": "single_choice",
      "options": [
        "From a student or member",
        "At the event",
        "On the online page",
        "From a friend"
      ]
    },
    {
      "id": "seller_name",
      "label": "Who sold them to you?",
      "type": "short_text",
      "max_length": 150
    },
    {
      "id": "prize_hopes",
      "label": "Which prizes are you hoping for?",
      "type": "multi_choice",
      "options": [
        "Hamper",
        "Voucher",
        "Weekend away",
        "Gift basket",
        "Any prize"
      ]
    },
    {
      "id": "winner_contact",
      "label": "How should we reach you if you win?",
      "type": "single_choice",
      "options": [
        "Phone call",
        "Text message",
        "Email"
      ]
    },
    {
      "id": "be_at_draw",
      "label": "Will you be at the draw?",
      "type": "single_choice",
      "options": [
        "Yes, I will be there",
        "No, please contact me if I win"
      ]
    },
    {
      "id": "share_if_won",
      "label": "My name may be shared if I win",
      "type": "checkbox"
    },
    {
      "id": "old_enough",
      "label": "I am old enough to enter under the rules of this raffle",
      "type": "checkbox",
      "required": true
    },
    {
      "id": "rules_read",
      "label": "I have read the raffle rules",
      "type": "checkbox",
      "required": true
    }
  ]
}