Kemicard – Apple and Google Wallet Cards for Salesforce

PO Box 55056 RPO Windermere, Edmonton AB T6W 5B4

+1-780-237-2142

Follow Us On:
Powered by: KEMISOFT
View Categories

Events Guide

7 min read

1. Summary

Kemicard Events is a custom Salesforce object (Event__c) designed to model event metadata that integrates with Kemicard’s digital wallet pass generation and event scanning solutions. This object serves as the central hub for event definition, supporting both one-time conferences and recurring events, while providing the data backbone for wallet pass generation and real-time attendance tracking.


2. Object Overview

Object Name (API): Event__c
Object Label (User-Facing): Kemicard Event
Plural Label: Kemicard Events
Custom Object Type: Custom
Features Enabled:

  • Enable Reports ✓
  • Track Activities ✓
  • Track Field History ✓
  • Deployment Status: Deployed

3. Record Types

Event__c supports two record type patterns to accommodate different event lifecycles:

Record TypeDescriptionUse CaseStatus
One TimeSingle-occurrence events with defined start and end datesConferences, trade shows, workshops, one-off webinarsActive
RecurringEvents that repeat on a scheduleMonthly member nights, weekly training sessions, annual galasActive

Both record types are Active and visible to all users. The record type selection determines the event pattern and may control field visibility and validation rules.


4. Complete Field Reference

Event__c contains 11 fields. Below is the complete field listing with API names, data types, and usage guidance:

4.1 Core Fields

Field LabelAPI NameData TypeIndexedRequiredDescription & Usage
Event NameNameText(80)YesYesHuman-readable event identifier (for example “TechSummit 2026 – Calgary” or “SF Dreamforce”). Appears as the primary link in list views and record pages. Must be unique or descriptive within your org to avoid confusion.
TypeType__cPicklistNoNoBusiness classification of the event. Supported picklist values include: Conference, Chapter Meeting, Charity, Networking, Seminars. Use consistent values for reporting and filtering. Examples : “Conference”
DescriptionDescription__cText Area(255)NoNoLong-form details about the event: venue address, agenda highlights, registration link, special instructions, or internal notes. Visible on the record detail page; not displayed on passes by default. Example: “Annual technology summit in Calgary featuring keynotes, workshops, and networking. Hybrid format with in-person and virtual options.”
Record TypeRecordTypeIdRecord TypeYesYesDetermines event pattern (One Time or Recurring) and associated field visibility. Selected during record creation and can be changed via “Change Record Type” action if permissions allow.
OwnerOwnerIdLookup(User, Group)YesYesAssignee responsible for the event. Controls sharing and record access. Typically the event coordinator or marketing manager. Can be changed via “Change Owner” action. Example: “User User”

4.2 Date & Time Fields

Field LabelAPI NameData TypeIndexedRequiredDescription & Usage
Start DateStart_Date__cDate/TimeNoNoEvent start date and time (example: 2026-03-15, 9:00 a.m.). Used by the Occurring Now formula field. Should be before the End Date. Critical for generating wallet pass validity windows and pass notifications.
End DateEnd_Date__cDate/TimeNoNoEvent end date and time (example: 2026-03-17, 5:00 p.m.). Used by the Occurring Now formula field. Should be after the Start Date. Marks the end of the event and passes validity.

4.3 Status & Derived Fields

Field LabelAPI NameData TypeFormula / TypeIndexedDescription & Usage
ActiveActive__cCheckboxBooleanNoIndicates whether the event is currently in use. Set to true when the event is ready for pass generation and scanning workflows. Set to false when the event is cancelled, archived, or no longer accepting attendees. Controls event visibility in Kemicard pass workflows. Example: Both “SF Dreamforce” and “SF TDX” show Active = checked ✓
Occurring NowOccurring_Now__cFormula (Checkbox)DerivedNoRead-only formula field. Returns true if the current date/time falls between Start Date and End Date. Useful for identifying live events in list views and dashboards. Not manually editable. Both “SF Dreamforce” and “SF TDX” show Occurring Now = checked ✓ because the current date (Feb 7, 2026) falls within their event window (Feb 7 – Feb 10, 2026).

4.4 System Fields (Read-Only)

Field LabelAPI NameData TypeDescriptionExample
Created ByCreatedByIdLookup(User)User who created the Event__c record. Automatically populated. Read-only.User User, 2026-02-08, 1:59 a.m.
Last Modified ByLastModifiedByIdLookup(User)User who last edited the record. Automatically updated. Read-only.User User, 2026-02-08, 1:59 a.m.

5. Page Layout & Field Visibility

The default Kemicard Event page layout for “One Time” and “Recurring” record types displays fields in the following structure:

Left Column (Primary Section):

  • Event Name
  • Description
  • Start Date
  • End Date
  • Type
  • Occurring Now (read-only)

Right Column (Secondary Section):

  • Record Type
  • Active
  • Owner

Related Tab:

  • Related records, if configured

Activity Tab:

  • Event activity feed and history

Example  showing the “SF Dreamforce” event details:

  • Event Name: SF Dreamforce
  • Record Type: One Time
  • Active: ✓ (checked)
  • Start Date: 2026-02-07, 1:32 a.m.
  • End Date: 2026-02-10, 1:32 a.m.
  • Type: Conference
  • Owner: User User
  • Occurring Now: ✓ (checked, because today is Feb 7, 2026)

6. Validation & Data Quality Rules

Based on best practices for event management in Salesforce, your org should enforce:

RuleDescriptionRecommended Action
Unique Event NamePrevent duplicate event names within the same date range.Validation rule or duplicate rule to avoid confusion in list views.
Date ValidationEnsure End Date ≥ Start Date.Validation rule: End_Date__c < Start_Date__c → Error.
Mandatory FieldsRequire Event Name, Start Date, End Date, and Active status before save.Field-level requirements via page layout and validation.
Type Picklist ConsistencyUse standardized Type values (Conference, Webinar, etc.) for filtering and reporting.Validation rule or picklist enforcement.

7. Security & Access Control

Event__c inherits standard Salesforce security features:

  • Profiles & Permission Sets: Control which users can create, read, update, or delete Event__c records.
  • Field-Level Security: Hide sensitive fields from certain users via permission sets.
  • Sharing Rules: Extend access to events owned by other users.
  • Org-Wide Defaults: Set default sharing level (Public Read, Public Read/Write, Private) at the object level.

Recommended Configuration:

  • Allow Event Coordinators and Admins to create and manage events.
  • Allow Marketing and Sales teams to read events and generate passes.
  • Allow Kemicard Console operators to read events for pass generation and scanning.
  • Restrict event deletion to Admins only.

8. Integration with Kemicard Ecosystem

Event__c does not generate wallet passes directly. Instead, it serves as the event metadata backbone that Kemicard workflows reference.

8.1 Data Flow

text

Event__c (event definition: name, dates, type, active status)

    ↓

Kemicard Configuration (defines which object generates passes and how)

    ↓

Kemicard Template (defines pass appearance and field mapping)

    ↓

Attendee Object (Contact, Lead, Member, Registration__c, etc.)

    ↓

Flow / Apex / Kemicard Console Action (generates pass with event metadata)

    ↓

Apple Wallet / Google Wallet Pass (displays event name, dates, location, QR code)

    ↓

Kemicard Scanner App (scans pass, verifies event date window, logs attendance)

    ↓

Attendance Log (linked to Event__c and attendee record)

8.2 Pass Generation

When a Kemicard pass is generated:

  • The template may reference Event__c fields to populate pass details (event name, dates, location).
  • The pass barcode/QR code encodes attendance information linked to the Event__c record.
  • The pass automatically inherits the event’s Active status and date validity window.

8.3 Scanner Integration

The Kemicard Scanner app (or web scanning page) reads passes during the event:

  • Scanner confirms that the current time is within the event’s Start Date and End Date window.
  • Scanner logs attendance against the attendee and the Event__c record.
  • Real-time dashboards and reports show attendance by event.

9. List View & Filtering

9.1 Default List View Columns

The “All” list view for Kemicard Events displays:

ColumnAPI FieldPurpose
Event NameNamePrimary identifier; click to open record
Record TypeRecordTypeIdDistinguishes One Time vs. Recurring events
ActiveActive__cQuick indicator of event status
Occurring NowOccurring_Now__cHighlights events currently running
Start DateStart_Date__cEvent start; useful for sorting
End DateEnd_Date__cEvent end; useful for sorting
TypeType__cBusiness classification; enables filtering

Example  showing the list view with 2 items:

Event NameRecord TypeActiveOccurring NowStart DateEnd DateType
SF DreamforceOne Time2026-02-07, 1:32 a.m.2026-02-10, 1:32 a.m.Conference
SF TDXOne Time2026-02-07, 1:32 a.m.2026-02-10, 1:32 a.m.Conference

9.2 Suggested Filters

Create additional list view filters for efficiency:

  • Upcoming Events: Start_Date__c >= TODAY (future events)
  • Active Events: Active__c = true (events ready for use)
  • This Month: Start_Date__c >= THIS_MONTH AND Start_Date__c < NEXT_MONTH
  • By Type: Filter by Type (example Conference or Webinar)
  • Occurring Now: Occurring_Now__c = true (live events)

10. Creating & Managing Events

10.1 Creating a New Event

Step-by-step walkthrough with screenshot examples:

  1. Navigate to Kemicard Events list.
  2. Click New.
  3. Record Type Selection Dialog appears:
    • Select One Time or Recurring.
    • Click Next.
  4. New Event Form opens:
    • Event Name (required): Type a descriptive name (example: “TechSummit 2026 – Calgary”)
    • Description (optional): Add context (example: “Annual technology summit in Calgary featuring keynotes, workshops, and networking. Hybrid format with in-person and virtual options.”)
    • Start Date: Enter date and time (example: 2026-03-15, 9:00 a.m.)
    • End Date: Enter date and time (example: 2026-03-17, 5:00 p.m.)
    • Type (optional): Select from picklist (example: Conference)
    • Active: Check to mark event as ready for use
    • Owner: Automatically set to current user; change if needed
  5. Click Save.

Success Message:

  • Green checkmark confirms: “Kemicard Event ‘TechSummit 2026 – Calgary’ was created.”
  • The event record opens showing all populated fields.

Real Example :

  • Event Name: TechSummit 2026 – Calgary
  • Record Type: One Time
  • Active: ✓
  • Start Date: 2026-03-15, 9:00 a.m.
  • End Date: 2026-03-17, 5:00 p.m.
  • Type: Conference
  • Owner: User User
  • Created By: User User, 2026-02-08, 1:59 a.m.

10.2 Editing an Existing Event

  1. Open the event from the Kemicard Events list.
  2. Click Edit.
  3. Modify fields as needed (dates, type, description, active status).
  4. Click Save.

Important: If you edit Start Date or End Date, the Occurring Now formula updates automatically to reflect whether the current time now falls within the new window.

10.3 Changing Record Type

  1. Open an event record.
  2. Click Change Record Type (button at top right).
  3. Select the new record type (One Time or Recurring).
  4. Review any field visibility changes.
  5. Click Save.

10.4 Cloning Events

To duplicate an event (useful for recurring annual events):

  1. Open the event.
  2. Click Clone.
  3. Adjust Event Name, Start Date, End Date, and other fields.
  4. Click Save.

10.5 Archiving Events

To retire an event without deleting it:

  1. Open the event.
  2. Click Edit.
  3. Set Active to false.
  4. Click Save.

The event remains in the database for historical reporting but is hidden from Kemicard pass generation workflows.


11. Real-World Examples 

Example 1: SF Dreamforce Event

Overview:
SF Dreamforce is a one-time conference spanning four days in February 2026.

Record Details:

  • Event Name: SF Dreamforce
  • Record Type: One Time
  • Active: ✓ (true)
  • Start Date: 2026-02-07, 1:32 a.m.
  • End Date: 2026-02-10, 1:32 a.m.
  • Type: Conference
  • Owner: User User
  • Occurring Now

Powered by BetterDocs