Documentation
1. Installing
Install LoyaltyLoop from the LeadConnector App Marketplace, or use the install link. You can install on:
- A single sub-account - LoyaltyLoop is connected to that location only.
- Your agency (bulk install) - choose which sub-accounts to enable. Each one gets its own independent rules, balances and history.
During install LoyaltyLoop creates a contact custom field called Loyalty Points Balance (field key contact.loyalty_points_balance) and a starter set of rules you can edit or delete.
2. Opening the app
Inside a sub-account, click LoyaltyLoop in the left-hand menu. You will be signed in automatically using your CRM session. If you open the app from the agency view you will be asked to choose a sub-account first.
The dashboard has five tabs: Overview (totals and top members), Rules, Members (search and adjust balances), Activity (every points change) and Settings (VIP tiers and the workflow webhook).
3. Earn and redeem rules
| Rule | When it fires | Details |
|---|---|---|
| Invoice paid | An invoice is fully paid | Points = amount paid × multiplier, rounded down. Optional minimum invoice amount. Paid once per invoice. |
| Contact tagged (earn) | A contact has the tag | Fixed points. Paid once per contact, or repeatable if you enable "remove the tag after awarding". |
| Appointment status | An appointment becomes Showed or Confirmed | Fixed points. Paid once per appointment. |
| New contact | A contact is created | A welcome bonus, paid once per contact. |
| Contact tagged (redeem) | A contact has the tag | Deducts points and removes the tag. See below. |
Rules are saved per sub-account. Remember to click Save changes after editing.
4. Redeeming points
Create a Contact tagged (redeem) rule, for example tag redeem_coffee costing 500 points. When a staff member or workflow adds that tag to a contact:
- If the contact has enough points, the cost is deducted and the new balance is written to their record.
- If not, nothing is deducted and the attempt is recorded in Activity as "not enough points".
- Either way, the tag is removed so it can be used again later.
5. VIP tiers
In Settings → VIP tiers, define a name, a points threshold and a tag. The first time a contact's balance reaches the threshold, LoyaltyLoop adds the tag (default: VIP_Gold at 1,000 points). Use that tag as a workflow trigger to send rewards or move them into a premium pipeline. A tier tag is added once per contact and is not removed if the balance later drops.
6. Using the points balance
The balance is available anywhere custom fields are: the merge field {{contact.loyalty_points_balance}}, smart list filters, and workflow If/Else conditions (for example "Loyalty Points Balance is greater than 200").
7. Workflow webhook
To award or deduct points from your own automations, add a Custom Webhook action to a workflow:
- Method:
POST - URL and API key: shown in Settings → Workflow webhook (keep the key private; you can rotate it at any time)
- Header:
x-api-key: <your key>
{
"contactId": "{{contact.id}}",
"action": "earn",
"points": 50,
"reason": "Event attendance",
"idempotencyKey": "{{contact.id}}-event-2026-10"
}
| Field | Description |
|---|---|
contactId | Required. The contact to change. |
action | Required. earn or burn. |
points | Required. A positive whole number (up to 1,000,000). |
reason | Optional. Shown in Activity. |
idempotencyKey | Optional. If the same key is sent twice only the first request is applied. |
Responses: 200 with the new balance on success, 401 for a wrong key, 409 if a burn would take the balance below zero.
8. Good to know
- Balances are kept by LoyaltyLoop and mirrored to the contact field after every change. If a CRM update ever fails, the Overview tab shows a "waiting to sync" notice with a Sync now button. Points are never lost.
- Editing the points custom field by hand does not change LoyaltyLoop's ledger and will be overwritten on the next change. Use Members → Adjust instead.
- Refunds and voided invoices do not automatically remove points. Use Members → Adjust with a negative number.
- If a contact already had a value in the points field when LoyaltyLoop first sees them (for example after a reinstall), that value is used as their starting balance.
- Uninstalling LoyaltyLoop deletes the rules, ledger and history we hold for the location. The field values on your contacts remain in your CRM.
9. Troubleshooting
| Problem | What to check |
|---|---|
| Dashboard says "not installed" | Open the app from inside a sub-account that LoyaltyLoop was installed on. Agency admins can install it for more sub-accounts from the App Marketplace. |
| Points are not being added | Check the rule exists and was saved. Invoices must be fully paid. For tag rules, the tag must match exactly (not case-sensitive). Look in Activity for the event. |
| Overview shows "Points field is missing" | Click Create field. If it keeps failing, confirm the app has permission to manage custom fields, or reinstall. |
| The same tag keeps awarding points | Tag rules pay once per contact unless "remove the tag after awarding" is enabled for that rule. |
| Session expired | Reload the page or reopen LoyaltyLoop from the left menu. |