PO Box 55056 RPO Windermere, Edmonton, AB T6W 5B4, Canada

Installation Guide

Install the Kemicard managed package from the Salesforce AppExchange, authorize the backend, and get your org provisioned for Apple Wallet and Google Wallet. Time required: about 45 minutes plus provisioning turnaround.

Prerequisites

  • A Salesforce org (Sales Cloud, Service Cloud, Nonprofit Cloud, NPSP, or compatible) with System Administrator access.
  • Your production and sandbox Org IDs — required to provision licenses on the Kemicard backend. If an org is refreshed or changed, the Org ID changes and provisioning must be updated.
  • A dedicated integration mailbox for the named credential user. Prefer a shared system-admin mailbox with non-expiring credentials over a personal account — this address also receives system alerts.
  • A decision on which production user acts as the integration user. Enrollment emails send from this identity, so choose a branded, monitored address.
Provisioning is managed for you. Kemisoft provisions the Apple certificate and Google Wallet issuer setup during onboarding and tracks certificate renewals per client — no wallet developer accounts needed on your side.

Step 1 — Install the managed package

Free 30-day trial: choosing Get It Now on AppExchange starts a free 30-day trial of Kemicard in your sandbox — this guide is exactly the process to follow, and the Getting Started walkthrough takes you from installed package to your first live pass. Want to see it working before installing anything? Launch the Test Drive to explore a fully configured org first.

Install from the AppExchange listing into your sandbox first, validate, then install into production.

  1. Open the Kemicard listing on AppExchange and choose Get It Now.
  2. Select Install in Sandbox, log in, and approve third-party access when prompted.
  3. Choose Install for Admins Only initially; widen access with permission sets after configuration.
  4. Repeat for production once sandbox testing passes.
Restricted production access? If your policies prevent vendor access to production, install the managed package yourself and receive client-specific components via change sets. Get the app installed in production before the change set is built.

Step 2 — Authorize the backend (named credential)

Your org calls the Kemicard backend through the Kemicard_App named credential. Enter the integration credentials supplied during onboarding:

Setup → Named Credentials → Kemicard_App
  → Identity: Named Principal
  → Username / Password: (provided at onboarding)

Most “pass URLs not generating” issues are authentication failures here — see Troubleshooting for status-code diagnosis (401 vs 409).

Step 3 — Configure email deliverability

  • Verify your sending domain and set up DKIM for production sends.
  • In sandboxes and scratch orgs with unverified domains, enable “Use a substitute email address for unverified domains” under Email Deliverability, or provision a DKIM key in DNS for the sandbox.
  • Send a test enrollment email to multiple mail providers; check quarantine folders if a trial email doesn't arrive.

Step 4 — Verify the installation

  1. Open the Kemicard Templates tab and confirm the app loads with your license count.
  2. Create a test template against a sample Contact (see Getting Started).
  3. Generate a pass and install it on both an iPhone and an Android device.
  4. Change a mapped field on the record and confirm the installed pass updates.
Test on real devices. Always validate templates with sample records on physical iPhones and Android phones before rollout — wallet rendering differs from the preview in edge cases.

Next steps

Continue to Getting Started to build your first template, then configure Bulk Actions for rollout and the Scanner for check-in.

Alternative: guided install via MetaDeploy

Kemicard can also be installed through Kemisoft's MetaDeploy installer, which automates package installation and optional sample data:

  1. Navigate to the Kemisoft MetaDeploy products page.
  2. Click the user icon (top right) and log in with the org — sandbox or production — you intend to install into.
  3. Select the Kemicard tile, click Kemicard — View Details, then Install and wait for completion.
  4. Verify under Setup → Installed Packages that Kemicard Digital Pass is installed.
  5. Open the App Launcher → Kemicard (as a System Administrator or Integration User), go to Kemicard Configuration, click Authorize Kemicard User, and click Allow on the OAuth popup. A success screen confirms authentication.
Sample data: selecting the "Sample Data" option during install ships the Woofly Membership Pass reference template plus five example flows (see the Flow Integration guide) — the fastest way to explore a working configuration.
Kemisoft MetaDeploy installer showing the Kemicard product tile
MetaDeploy installer
Kemicard installation progress in MetaDeploy
Installation steps running
Salesforce installed packages showing Kemicard Digital Pass
Verifying the installed package
Authorize Kemicard User button in the Kemicard Configuration tab
Authorizing the Kemicard user (OAuth)

Template Pass configuration — field reference

After installation, open the Template Pass tab. A sample template, Woofly Membership Pass, ships with the package for reference. The key fields:

FieldWhat to enter
NameThe template pass name
Record TypeThe record type name
Organization NameYour company name
Email TemplateAPI name of the email template used to send Apple passes to users
Background ColorRGB value for the pass background
Update Email TemplateDeveloper name of the email template used when a Google Wallet pass is updated
From Email Address / IDSender address for outbound emails and the Organization-Wide Email Address ID

Google Wallet fields

FieldPurpose
Card TitleHeader of the pass — usually the business name. Required; appears in the header row at the very top.
HeaderThe pass title. Required; appears in the title row of the detail view.
SubheaderTitle label, such as where the pass can be used; appears above the title.
LanguageLanguage of pass values.
Smart TapConveys data between the device and an NFC terminal.
StateControls display: inactive objects move to the wallet's "Expired passes" section; default is ACTIVE.
Logo URLShown top-left in the detail view and on the thumbnail; without it, the first letter of the Card Title is used.
Detail Banner / Hero ImageFront-of-card imagery, displayed at 100% width.

Apple Wallet fields

FieldPurpose
Card TitleText displayed next to the logo.
DescriptionShort description used by iOS accessibility technologies.
Expiration / Relevant DateW3C timestamps (complete date with hours and minutes) controlling expiry and when the pass surfaces.
Foreground / Label / Strip ColorCSS-style RGB triples, e.g. rgb(100, 10, 110) — decimals are not supported.
Max DistanceMaximum distance in meters from a location at which the pass is relevant.
Sharing ProhibitedRemoves the Share button on the back of the pass (iOS 11+).
Suppress Strip ShineDisplays the strip image without the shine effect (default true).
Grouping IdentifierGroups related event tickets/boarding passes in Wallet.
Wallet Resource IDContent Document ID of a zip file containing all pass resources.
Kemicard Template Pass tab with the Woofly sample template
Template Pass tab with the Woofly sample
Kemicard template pass configuration fields
Template Pass field configuration
Kemicard configuration screen
Kemicard Configuration
Successful Kemicard authorization confirmation
Successful authorization

Wire up Flows or Triggers

Two methodologies activate pass generation (full details in the Flow Integration guide and Architecture reference):

  • Salesforce Flow — a record-triggered Flow on the relevant object (e.g., Contact) with a decision element, calling the Generate Pass Apex Action with templatePassId, passDetails, and passSendToEmails; capture the returned Pass ID and write it back to the record.
  • Apex Trigger — call KemicardService.upsertPasses from your trigger handler with a fully-populated PassRequest. Include passId to update an existing pass instead of creating a new one.

Permission sets & user access

Kemicard ships permission sets that control who can design templates, generate passes, run bulk actions, and view pass records. Assign them deliberately:

RoleTypical assignmentCan do
Kemicard AdministratorSalesforce adminsTemplates, Configuration, named credential, bulk actions, licensing view
Kemicard Standard UserMembership / events staffGenerate passes, send messages from records, view pass status
Scanner UserDoor and front-desk staffScan passes, record attendance and redemptions

Object and field access always follows the running user's profile and permission sets — Kemicard never bypasses your sharing model.

Post-install checklist

  • Named credential authenticates (generate a test pass URL)
  • Email template set on the Configuration and a test enrollment email delivered
  • Test pass installed on a physical iPhone and Android device
  • Field change on the test record refreshes the installed pass
  • Push notification received on both platforms
  • Permission sets assigned to admin, staff, and scanner users
  • Sandbox Org ID and production Org ID recorded with your account manager

Installation FAQ

  • Do upgrades require reinstalling? No — upgrades install as new managed package versions over the top, preserving your templates and configuration.
  • Can we install in a scratch org? Yes, for development. Note the email deliverability caveats above for unverified domains.
  • Does a sandbox refresh break anything? A refresh changes the sandbox Org ID, so backend provisioning must be re-aligned — contact support with the new Org ID before testing resumes.
  • What network access does the org need? Only outbound HTTPS from Salesforce to the Kemicard backend via the named credential; there are no inbound connections into your org.