An address collection form for wedding invitations

Updated 2026-10-30

Chasing addresses by text is a slow way to start a wedding. People send half an address, a photo of an envelope or nothing at all. I would send one link and ask every guest once, in the same order.

What do guests tell me?

The names as they should appear on the envelope, then street, city, region, postcode and country. Email and phone are optional, for the day the post goes astray. Each answer matches a line on a label, so you can copy columns straight across.

What would a guest's AI ask?

"How should we write your names on the envelope?" Then "What is your street address?" Then "Which postcode and country?" The AI shows every answer, so the guest can fix a typo before anything is sent, and it submits only after a yes. Read about agent-fillable forms.

How do I look after this data?

Addresses are personal, so ask only for what you will post to. The form leaves out identity numbers on purpose. Download the CSV once, keep it private and delete it after the thank-you cards go out. Follow your local rules for personal data.

What else will I need?

Two small tick boxes help: one for guests who are moving, one for guests who want a printed invitation instead of an email. Once addresses are in, move on to a wedding RSVP form for replies and a song request form for the music. Afterwards, a wedding guest book collects notes. Browse forms for weddings.

Questions

How do I print envelope labels from the answers?

Download the CSV and open it in a spreadsheet. Use the envelope_names column and the address columns as the source for a mail merge in your label printer.

What should I do with the addresses afterwards?

Keep the CSV in one private place, use it for invitations and thank-you cards, and delete it once the cards are posted. Share the link only with people you invite.

What if a guest is moving before the wedding?

A tick box asks whether they are moving, and a date field asks when. Check those two columns before you print labels, so no card goes to an old address.

Try the form

Live demo ยท nothing is saved

Where should we send your invitation?

Please share the address you would like us to post to. We will only use it for wedding mail.

For example Mr and Mrs Okafor, or Priya and Sam Shah.

I am moving before the wedding
I would like a printed invitation by post

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": "Where should we send your invitation?",
  "description": "Please share the address you would like us to post to. We will only use it for wedding mail.",
  "fields": [
    {
      "id": "envelope_names",
      "label": "Names to write on the envelope",
      "type": "short_text",
      "required": true,
      "help": "For example Mr and Mrs Okafor, or Priya and Sam Shah.",
      "max_length": 200
    },
    {
      "id": "street_address",
      "label": "Street address",
      "type": "short_text",
      "required": true,
      "max_length": 200
    },
    {
      "id": "address_line_two",
      "label": "Apartment, unit or building name",
      "type": "short_text",
      "max_length": 150
    },
    {
      "id": "city",
      "label": "City or town",
      "type": "short_text",
      "required": true,
      "max_length": 100
    },
    {
      "id": "region",
      "label": "State, county or province",
      "type": "short_text",
      "max_length": 100
    },
    {
      "id": "postcode",
      "label": "Postcode or ZIP code",
      "type": "short_text",
      "required": true,
      "max_length": 20
    },
    {
      "id": "country",
      "label": "Country",
      "type": "short_text",
      "required": true,
      "max_length": 100
    },
    {
      "id": "contact_email",
      "label": "Email, in case the post goes astray",
      "type": "email"
    },
    {
      "id": "contact_phone",
      "label": "Phone",
      "type": "phone"
    },
    {
      "id": "moving_soon",
      "label": "I am moving before the wedding",
      "type": "checkbox"
    },
    {
      "id": "new_address_date",
      "label": "Date you move, if you know it",
      "type": "date"
    },
    {
      "id": "wants_paper_invite",
      "label": "I would like a printed invitation by post",
      "type": "checkbox"
    }
  ]
}

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":"Where should we send your invitation?","description":"Please share the address you would like us to post to. We will only use it for wedding mail.","fields":[{"id":"envelope_names","label":"Names to write on the envelope","type":"short_text","required":true,"help":"For example Mr and Mrs Okafor, or Priya and Sam Shah.","max_length":200},{"id":"street_address","label":"Street address","type":"short_text","required":true,"max_length":200},{"id":"address_line_two","label":"Apartment, unit or building name","type":"short_text","max_length":150},{"id":"city","label":"City or town","type":"short_text","required":true,"max_length":100},{"id":"region","label":"State, county or province","type":"short_text","max_length":100},{"id":"postcode","label":"Postcode or ZIP code","type":"short_text","required":true,"max_length":20},{"id":"country","label":"Country","type":"short_text","required":true,"max_length":100},{"id":"contact_email","label":"Email, in case the post goes astray","type":"email"},{"id":"contact_phone","label":"Phone","type":"phone"},{"id":"moving_soon","label":"I am moving before the wedding","type":"checkbox"},{"id":"new_address_date","label":"Date you move, if you know it","type":"date"},{"id":"wants_paper_invite","label":"I would like a printed invitation by post","type":"checkbox"}]}'

JSON definition

json
{
  "title": "Where should we send your invitation?",
  "description": "Please share the address you would like us to post to. We will only use it for wedding mail.",
  "fields": [
    {
      "id": "envelope_names",
      "label": "Names to write on the envelope",
      "type": "short_text",
      "required": true,
      "help": "For example Mr and Mrs Okafor, or Priya and Sam Shah.",
      "max_length": 200
    },
    {
      "id": "street_address",
      "label": "Street address",
      "type": "short_text",
      "required": true,
      "max_length": 200
    },
    {
      "id": "address_line_two",
      "label": "Apartment, unit or building name",
      "type": "short_text",
      "max_length": 150
    },
    {
      "id": "city",
      "label": "City or town",
      "type": "short_text",
      "required": true,
      "max_length": 100
    },
    {
      "id": "region",
      "label": "State, county or province",
      "type": "short_text",
      "max_length": 100
    },
    {
      "id": "postcode",
      "label": "Postcode or ZIP code",
      "type": "short_text",
      "required": true,
      "max_length": 20
    },
    {
      "id": "country",
      "label": "Country",
      "type": "short_text",
      "required": true,
      "max_length": 100
    },
    {
      "id": "contact_email",
      "label": "Email, in case the post goes astray",
      "type": "email"
    },
    {
      "id": "contact_phone",
      "label": "Phone",
      "type": "phone"
    },
    {
      "id": "moving_soon",
      "label": "I am moving before the wedding",
      "type": "checkbox"
    },
    {
      "id": "new_address_date",
      "label": "Date you move, if you know it",
      "type": "date"
    },
    {
      "id": "wants_paper_invite",
      "label": "I would like a printed invitation by post",
      "type": "checkbox"
    }
  ]
}