# Collecting Information from Customers (Contact & Appointment Fields)

pickAtime lets you collect custom information from participants at two different points:

- When they **create an account** (Contact Fields)
- When they **book a specific appointment** (Appointment Fields)

Both support various answer types — including **text**, **date**, **radio buttons**, **drop-down lists**, and **checkboxes**.

---

### 1. Choosing the Right Field Type

<div class="overflow-x-auto w-full px-2 mb-6" id="bkmrk-%C2%A0-contact-fields-app"><table class="min-w-full border-collapse text-sm leading-[1.7] whitespace-normal"><thead class="text-left"><tr><th class="text-text-100 border-b-0.5 border-[hsl(var(--border-300)/0.6)] py-2 pr-4 align-top font-bold" scope="col"> </th><th class="text-text-100 border-b-0.5 border-[hsl(var(--border-300)/0.6)] py-2 pr-4 align-top font-bold" scope="col">**Contact Fields**</th><th class="text-text-100 border-b-0.5 border-[hsl(var(--border-300)/0.6)] py-2 pr-4 align-top font-bold" scope="col">**Appointment Fields**</th></tr></thead><tbody><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">**When it's collected**</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">During initial account sign-up</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Every time a slot is booked</td></tr><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">**Frequency**</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Once per user</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Once per appointment</td></tr><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">**Best used for**</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Phone number, address, language preference — info tied to the **person**</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Student name, meeting topic, teacher-specific questions — info tied to the **appointment**</td></tr><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">**Location**</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">**Global Setup / Contacts / Contact Fields**</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">**Settings / Appointment Fields**</td></tr></tbody></table>

</div>---

### 2. Setting Up a Field

Both field types use the same basic process:

1. Go to either **Global Setup / Contacts** or **Settings / Appointment Fields**, depending on which type you're creating.
2. **Add the field:** Type the field name (e.g., "Phone Number") into the **Add New** box and click **Add**.
3. **Activate the field:** It will appear under **Available Fields** — select it, then click the **`<`** button to move it into **Included Fields**.
4. **Admin visibility:** Check **"Required for Admins"** if you want staff to see/fill out this field when testing the system.

> 💡 **Pro tip:** Don't create custom fields for **First Name**, **Last Name**, or **Email** — these are already collected automatically during registration. Adding them again will prompt users to enter the same information twice.

---

### 3. Configuring a Question with Multiple Choice Answers

If you want a field to use **radio buttons**, a **drop-down list**, or **checkboxes**, you'll configure it as a "Choice" type field:

1. In **Included Fields**, locate the **Type** column for your question.
2. Click the cell and select **"Choice"** from the drop-down.
3. The **Question Editor** will open. Click **Add New Option** to add each possible response.
4. Choose a display format: 
    - Drop-down list
    - Radio buttons
    - Checkboxes
5. Use the **arrows (`<>`)** to reorder the options as needed.

---

### 4. Conditional Logic: Show/Hide Fields Based on Responses

You can make fields appear or disappear dynamically based on how a participant answers a Choice-type question.

Each Included Field is assigned a number, which is used to reference it in the conditional logic.

**To enable this:** Check **"Hide/Show fields based on the user response"** on the question you want to control others with.

**To configure it:** Next to each answer option, enter the field numbers to **hide** or **show** when that option is selected:

- **To hide fields:** Enter their numbers directly — e.g., `3,4,5` or `3-5`
- **To show specific fields instead:** Prefix each number with a `/` — e.g., `/5, /6`

> ⚠️ This logic only applies to fields that come **after** the conditional field in the list — it cannot affect fields earlier in the form.

**Example:** If a participant selects **"Junior"** for a given question, you could configure the rule to show only fields 5 and 6 — hiding everything else beyond that point unless explicitly shown.

---

### 5. Restricting Date Ranges

For Date-type fields (e.g., Date of Birth), you can restrict the range of dates a participant is allowed to enter.

**Why this matters:** Schools have reported participants accidentally entering today's date in a DOB field. The **Restrict Dates** option helps prevent this kind of erroneous entry.

**To use it:** On a Date-type field (in either Contact Fields or Appointment Fields setup), enable **Restrict Dates** and define the valid range — e.g., no dates after the year 2000.

---

### 6. Viewing the Collected Data

**In the Appointments Grid (Admin View):** For Appointment Fields, you can view responses immediately without running a report:

1. Go to the **Appointments** page.
2. Click any booked slot.
3. View the participant's custom field responses in the section below the calendar (left-hand side).

**In Reports:** To include custom fields as report columns:

1. Go to the **Event Report** section.
2. Click the blue **Contact Fields** or **Appointment Fields** link.
3. Check the box in the upper-right corner of the pop-up to select **all** fields, or choose specific ones.
4. Confirm your selection — the fields will now appear as columns in your report.