{
  "slug": "actions-friendbuy",
  "name": "Friendbuy (Actions)",
  "mode": "device",
  "authentication": {
    "scheme": "custom",
    "fields": {
      "merchantId": {
        "label": "Friendbuy Merchant ID",
        "description": "Find your Friendbuy Merchant ID by logging in to your [Friendbuy account](https://retailer.friendbuy.io/) and going to Developer Center > Friendbuy Code.",
        "type": "string",
        "required": true,
        "multiple": false,
        "choices": null,
        "default": null,
        "depends_on": null
      }
    }
  },
  "audienceConfig": null,
  "actions": {
    "trackCustomer": {
      "title": "Track Customer",
      "description": "Create a new customer profile or update an existing customer profile.",
      "platform": "web",
      "defaultSubscription": "type = \"identify\"",
      "hidden": false,
      "hasPerformBatch": false,
      "syncMode": null,
      "hooks": null,
      "dynamicFields": null,
      "fields": {
        "customerId": {
          "label": "Customer ID",
          "description": "The user's customer ID.",
          "type": "string",
          "required": true,
          "multiple": false,
          "allowNull": false,
          "dynamic": false,
          "default": {
            "@path": "$.userId"
          },
          "choices": null,
          "placeholder": null,
          "properties": null,
          "category": null,
          "depends_on": null,
          "readOnly": null,
          "hidden": null,
          "minimum": null,
          "maximum": null,
          "defaultObjectUI": null,
          "disabledInputMethods": null,
          "displayMode": null,
          "format": null,
          "additionalProperties": false
        },
        "anonymousId": {
          "label": "Anonymous ID",
          "description": "The user's anonymous id.",
          "type": "string",
          "required": false,
          "multiple": false,
          "allowNull": false,
          "dynamic": false,
          "default": {
            "@path": "$.anonymousId"
          },
          "choices": null,
          "placeholder": null,
          "properties": null,
          "category": null,
          "depends_on": null,
          "readOnly": null,
          "hidden": null,
          "minimum": null,
          "maximum": null,
          "defaultObjectUI": null,
          "disabledInputMethods": null,
          "displayMode": null,
          "format": null,
          "additionalProperties": false
        },
        "email": {
          "label": "Email",
          "description": "The user's email address.",
          "type": "string",
          "required": true,
          "multiple": false,
          "allowNull": false,
          "dynamic": false,
          "default": {
            "@path": "$.traits.email"
          },
          "choices": null,
          "placeholder": null,
          "properties": null,
          "category": null,
          "depends_on": null,
          "readOnly": null,
          "hidden": null,
          "minimum": null,
          "maximum": null,
          "defaultObjectUI": null,
          "disabledInputMethods": null,
          "displayMode": null,
          "format": null,
          "additionalProperties": false
        },
        "firstName": {
          "label": "First Name",
          "description": "The user's given name.",
          "type": "string",
          "required": false,
          "multiple": false,
          "allowNull": false,
          "dynamic": false,
          "default": {
            "@path": "$.traits.firstName"
          },
          "choices": null,
          "placeholder": null,
          "properties": null,
          "category": null,
          "depends_on": null,
          "readOnly": null,
          "hidden": null,
          "minimum": null,
          "maximum": null,
          "defaultObjectUI": null,
          "disabledInputMethods": null,
          "displayMode": null,
          "format": null,
          "additionalProperties": false
        },
        "lastName": {
          "label": "Last Name",
          "description": "The user's surname.",
          "type": "string",
          "required": false,
          "multiple": false,
          "allowNull": false,
          "dynamic": false,
          "default": {
            "@path": "$.traits.lastName"
          },
          "choices": null,
          "placeholder": null,
          "properties": null,
          "category": null,
          "depends_on": null,
          "readOnly": null,
          "hidden": null,
          "minimum": null,
          "maximum": null,
          "defaultObjectUI": null,
          "disabledInputMethods": null,
          "displayMode": null,
          "format": null,
          "additionalProperties": false
        },
        "name": {
          "label": "Name",
          "description": "The user's full name. If the name trait doesn't exist then it will be automatically derived from the firstName and lastName traits if they are defined.",
          "type": "string",
          "required": false,
          "multiple": false,
          "allowNull": false,
          "dynamic": false,
          "default": {
            "@path": "$.traits.name"
          },
          "choices": null,
          "placeholder": null,
          "properties": null,
          "category": null,
          "depends_on": null,
          "readOnly": null,
          "hidden": null,
          "minimum": null,
          "maximum": null,
          "defaultObjectUI": null,
          "disabledInputMethods": null,
          "displayMode": null,
          "format": null,
          "additionalProperties": false
        },
        "age": {
          "label": "Age",
          "description": "The user's age.",
          "type": "number",
          "required": false,
          "multiple": false,
          "allowNull": false,
          "dynamic": false,
          "default": {
            "@path": "$.traits.age"
          },
          "choices": null,
          "placeholder": null,
          "properties": null,
          "category": null,
          "depends_on": null,
          "readOnly": null,
          "hidden": null,
          "minimum": null,
          "maximum": null,
          "defaultObjectUI": null,
          "disabledInputMethods": null,
          "displayMode": null,
          "format": null,
          "additionalProperties": false
        },
        "birthday": {
          "label": "Birthday",
          "description": "The user's birthday in the format \"YYYY-MM-DD\", or \"0000-MM-DD\" to omit the year.",
          "type": "string",
          "required": false,
          "multiple": false,
          "allowNull": false,
          "dynamic": false,
          "default": {
            "@path": "$.traits.birthday"
          },
          "choices": null,
          "placeholder": null,
          "properties": null,
          "category": null,
          "depends_on": null,
          "readOnly": null,
          "hidden": null,
          "minimum": null,
          "maximum": null,
          "defaultObjectUI": null,
          "disabledInputMethods": null,
          "displayMode": null,
          "format": "date",
          "additionalProperties": false
        },
        "language": {
          "label": "Language",
          "description": "The user's language.",
          "type": "string",
          "required": false,
          "multiple": false,
          "allowNull": false,
          "dynamic": false,
          "default": {
            "@path": "$.traits.language"
          },
          "choices": null,
          "placeholder": null,
          "properties": null,
          "category": null,
          "depends_on": null,
          "readOnly": null,
          "hidden": null,
          "minimum": null,
          "maximum": null,
          "defaultObjectUI": null,
          "disabledInputMethods": null,
          "displayMode": null,
          "format": null,
          "additionalProperties": false
        },
        "addressCountry": {
          "label": "Country",
          "description": "The user's country.",
          "type": "string",
          "required": false,
          "multiple": false,
          "allowNull": false,
          "dynamic": false,
          "default": {
            "@path": "$.traits.address.country"
          },
          "choices": null,
          "placeholder": null,
          "properties": null,
          "category": null,
          "depends_on": null,
          "readOnly": null,
          "hidden": null,
          "minimum": null,
          "maximum": null,
          "defaultObjectUI": null,
          "disabledInputMethods": null,
          "displayMode": null,
          "format": null,
          "additionalProperties": false
        },
        "addressState": {
          "label": "State",
          "description": "The user's state.",
          "type": "string",
          "required": false,
          "multiple": false,
          "allowNull": false,
          "dynamic": false,
          "default": {
            "@path": "$.traits.address.state"
          },
          "choices": null,
          "placeholder": null,
          "properties": null,
          "category": null,
          "depends_on": null,
          "readOnly": null,
          "hidden": null,
          "minimum": null,
          "maximum": null,
          "defaultObjectUI": null,
          "disabledInputMethods": null,
          "displayMode": null,
          "format": null,
          "additionalProperties": false
        },
        "addressCity": {
          "label": "City",
          "description": "The user's city.",
          "type": "string",
          "required": false,
          "multiple": false,
          "allowNull": false,
          "dynamic": false,
          "default": {
            "@path": "$.traits.address.city"
          },
          "choices": null,
          "placeholder": null,
          "properties": null,
          "category": null,
          "depends_on": null,
          "readOnly": null,
          "hidden": null,
          "minimum": null,
          "maximum": null,
          "defaultObjectUI": null,
          "disabledInputMethods": null,
          "displayMode": null,
          "format": null,
          "additionalProperties": false
        },
        "addressPostalCode": {
          "label": "State",
          "description": "The user's postal code.",
          "type": "string",
          "required": false,
          "multiple": false,
          "allowNull": false,
          "dynamic": false,
          "default": {
            "@path": "$.traits.address.postalCode"
          },
          "choices": null,
          "placeholder": null,
          "properties": null,
          "category": null,
          "depends_on": null,
          "readOnly": null,
          "hidden": null,
          "minimum": null,
          "maximum": null,
          "defaultObjectUI": null,
          "disabledInputMethods": null,
          "displayMode": null,
          "format": null,
          "additionalProperties": false
        },
        "customerSince": {
          "label": "Customer Since",
          "description": "The date the user became a customer.",
          "type": "string",
          "required": false,
          "multiple": false,
          "allowNull": false,
          "dynamic": false,
          "default": {
            "@path": "$.traits.customerSince"
          },
          "choices": null,
          "placeholder": null,
          "properties": null,
          "category": null,
          "depends_on": null,
          "readOnly": null,
          "hidden": null,
          "minimum": null,
          "maximum": null,
          "defaultObjectUI": null,
          "disabledInputMethods": null,
          "displayMode": null,
          "format": "date-time",
          "additionalProperties": false
        },
        "loyaltyStatus": {
          "label": "Loyalty Status",
          "description": "The status of the user in your loyalty program. Valid values are \"in\", \"out\", or \"blocked\".",
          "type": "string",
          "required": false,
          "multiple": false,
          "allowNull": false,
          "dynamic": false,
          "default": {
            "@path": "$.traits.loyaltyStatus"
          },
          "choices": null,
          "placeholder": null,
          "properties": null,
          "category": null,
          "depends_on": null,
          "readOnly": null,
          "hidden": null,
          "minimum": null,
          "maximum": null,
          "defaultObjectUI": null,
          "disabledInputMethods": null,
          "displayMode": null,
          "format": null,
          "additionalProperties": false
        },
        "isNewCustomer": {
          "label": "New Customer Flag",
          "description": "Flag to indicate whether the user is a new customer.",
          "type": "boolean",
          "required": false,
          "multiple": false,
          "allowNull": false,
          "dynamic": false,
          "default": {
            "@path": "$.traits.isNewCustomer"
          },
          "choices": null,
          "placeholder": null,
          "properties": null,
          "category": null,
          "depends_on": null,
          "readOnly": null,
          "hidden": null,
          "minimum": null,
          "maximum": null,
          "defaultObjectUI": null,
          "disabledInputMethods": null,
          "displayMode": null,
          "format": null,
          "additionalProperties": false
        },
        "friendbuyAttributes": {
          "label": "Custom Attributes",
          "description": "Custom attributes to send to Friendbuy. You should pass an object whose keys are the names of the custom attributes and whose values are strings. Non-string-valued attributes will be dropped.",
          "type": "object",
          "required": false,
          "multiple": false,
          "allowNull": false,
          "dynamic": false,
          "default": {
            "@path": "$.traits.friendbuyAttributes"
          },
          "choices": null,
          "placeholder": null,
          "properties": null,
          "category": null,
          "depends_on": null,
          "readOnly": null,
          "hidden": null,
          "minimum": null,
          "maximum": null,
          "defaultObjectUI": null,
          "disabledInputMethods": null,
          "displayMode": null,
          "format": null,
          "additionalProperties": false
        }
      }
    },
    "trackPurchase": {
      "title": "Track Purchase",
      "description": "Record when a customer makes a purchase.",
      "platform": "web",
      "defaultSubscription": "event = \"Order Completed\"",
      "hidden": false,
      "hasPerformBatch": false,
      "syncMode": null,
      "hooks": null,
      "dynamicFields": null,
      "fields": {
        "orderId": {
          "label": "Order ID",
          "description": "The order ID.",
          "type": "string",
          "required": true,
          "multiple": false,
          "allowNull": false,
          "dynamic": false,
          "default": {
            "@path": "$.properties.order_id"
          },
          "choices": null,
          "placeholder": null,
          "properties": null,
          "category": null,
          "depends_on": null,
          "readOnly": null,
          "hidden": null,
          "minimum": null,
          "maximum": null,
          "defaultObjectUI": null,
          "disabledInputMethods": null,
          "displayMode": null,
          "format": null,
          "additionalProperties": false
        },
        "amount": {
          "label": "Purchase Amount",
          "description": "Purchase amount to be considered when evaluating reward rules.",
          "type": "number",
          "required": true,
          "multiple": false,
          "allowNull": false,
          "dynamic": false,
          "default": {
            "@path": "$.properties.total"
          },
          "choices": null,
          "placeholder": null,
          "properties": null,
          "category": null,
          "depends_on": null,
          "readOnly": null,
          "hidden": null,
          "minimum": null,
          "maximum": null,
          "defaultObjectUI": null,
          "disabledInputMethods": null,
          "displayMode": null,
          "format": null,
          "additionalProperties": false
        },
        "currency": {
          "label": "Currency",
          "description": "The currency of the purchase amount.",
          "type": "string",
          "required": true,
          "multiple": false,
          "allowNull": false,
          "dynamic": false,
          "default": {
            "@path": "$.properties.currency"
          },
          "choices": null,
          "placeholder": null,
          "properties": null,
          "category": null,
          "depends_on": null,
          "readOnly": null,
          "hidden": null,
          "minimum": null,
          "maximum": null,
          "defaultObjectUI": null,
          "disabledInputMethods": null,
          "displayMode": null,
          "format": null,
          "additionalProperties": false
        },
        "coupon": {
          "label": "Coupon",
          "description": "The coupon code of any coupon redeemed with the order.",
          "type": "string",
          "required": false,
          "multiple": false,
          "allowNull": false,
          "dynamic": false,
          "default": {
            "@path": "$.properties.coupon"
          },
          "choices": null,
          "placeholder": null,
          "properties": null,
          "category": null,
          "depends_on": null,
          "readOnly": null,
          "hidden": null,
          "minimum": null,
          "maximum": null,
          "defaultObjectUI": null,
          "disabledInputMethods": null,
          "displayMode": null,
          "format": null,
          "additionalProperties": false
        },
        "attributionId": {
          "label": "Friendbuy Attribution ID",
          "description": "Friendbuy attribution ID that associates the purchase with the advocate who referred the purchaser.",
          "type": "string",
          "required": false,
          "multiple": false,
          "allowNull": false,
          "dynamic": false,
          "default": {
            "@path": "$.properties.attributionId"
          },
          "choices": null,
          "placeholder": null,
          "properties": null,
          "category": null,
          "depends_on": null,
          "readOnly": null,
          "hidden": null,
          "minimum": null,
          "maximum": null,
          "defaultObjectUI": null,
          "disabledInputMethods": null,
          "displayMode": null,
          "format": null,
          "additionalProperties": false
        },
        "referralCode": {
          "label": "Friendbuy Referral ID",
          "description": "Friendbuy referral code that associates the purchase with the advocate who referred the purchaser.",
          "type": "string",
          "required": false,
          "multiple": false,
          "allowNull": false,
          "dynamic": false,
          "default": {
            "@path": "$.properties.referralCode"
          },
          "choices": null,
          "placeholder": null,
          "properties": null,
          "category": null,
          "depends_on": null,
          "readOnly": null,
          "hidden": null,
          "minimum": null,
          "maximum": null,
          "defaultObjectUI": null,
          "disabledInputMethods": null,
          "displayMode": null,
          "format": null,
          "additionalProperties": false
        },
        "giftCardCodes": {
          "label": "Gift Card Codes",
          "description": "An array of gift card codes applied to the order.",
          "type": "string",
          "required": false,
          "multiple": true,
          "allowNull": false,
          "dynamic": false,
          "default": {
            "@path": "$.properties.giftCardCodes"
          },
          "choices": null,
          "placeholder": null,
          "properties": null,
          "category": null,
          "depends_on": null,
          "readOnly": null,
          "hidden": null,
          "minimum": null,
          "maximum": null,
          "defaultObjectUI": null,
          "disabledInputMethods": null,
          "displayMode": null,
          "format": null,
          "additionalProperties": false
        },
        "products": {
          "label": "Products",
          "description": "Products purchased.",
          "type": "object",
          "required": false,
          "multiple": true,
          "allowNull": false,
          "dynamic": false,
          "default": {
            "@path": "$.properties.products"
          },
          "choices": null,
          "placeholder": null,
          "properties": {
            "sku": {
              "label": "Product SKU",
              "type": "string",
              "required": false,
              "multiple": false,
              "allowNull": false,
              "dynamic": false,
              "default": null,
              "choices": null,
              "placeholder": null,
              "properties": null,
              "category": null,
              "depends_on": null,
              "readOnly": null,
              "hidden": null,
              "minimum": null,
              "maximum": null,
              "defaultObjectUI": null,
              "disabledInputMethods": null,
              "displayMode": null,
              "format": null,
              "additionalProperties": false
            },
            "name": {
              "label": "Product Name",
              "type": "string",
              "required": false,
              "multiple": false,
              "allowNull": false,
              "dynamic": false,
              "default": null,
              "choices": null,
              "placeholder": null,
              "properties": null,
              "category": null,
              "depends_on": null,
              "readOnly": null,
              "hidden": null,
              "minimum": null,
              "maximum": null,
              "defaultObjectUI": null,
              "disabledInputMethods": null,
              "displayMode": null,
              "format": null,
              "additionalProperties": false
            },
            "quantity": {
              "label": "Quantity (default 1)",
              "type": "integer",
              "required": false,
              "multiple": false,
              "allowNull": false,
              "dynamic": false,
              "default": null,
              "choices": null,
              "placeholder": null,
              "properties": null,
              "category": null,
              "depends_on": null,
              "readOnly": null,
              "hidden": null,
              "minimum": null,
              "maximum": null,
              "defaultObjectUI": null,
              "disabledInputMethods": null,
              "displayMode": null,
              "format": null,
              "additionalProperties": false
            },
            "price": {
              "label": "Price",
              "type": "number",
              "required": true,
              "multiple": false,
              "allowNull": false,
              "dynamic": false,
              "default": null,
              "choices": null,
              "placeholder": null,
              "properties": null,
              "category": null,
              "depends_on": null,
              "readOnly": null,
              "hidden": null,
              "minimum": null,
              "maximum": null,
              "defaultObjectUI": null,
              "disabledInputMethods": null,
              "displayMode": null,
              "format": null,
              "additionalProperties": false
            },
            "description": {
              "label": "Product Description",
              "type": "string",
              "required": false,
              "multiple": false,
              "allowNull": false,
              "dynamic": false,
              "default": null,
              "choices": null,
              "placeholder": null,
              "properties": null,
              "category": null,
              "depends_on": null,
              "readOnly": null,
              "hidden": null,
              "minimum": null,
              "maximum": null,
              "defaultObjectUI": null,
              "disabledInputMethods": null,
              "displayMode": null,
              "format": null,
              "additionalProperties": false
            },
            "category": {
              "label": "Product Category",
              "type": "string",
              "required": false,
              "multiple": false,
              "allowNull": false,
              "dynamic": false,
              "default": null,
              "choices": null,
              "placeholder": null,
              "properties": null,
              "category": null,
              "depends_on": null,
              "readOnly": null,
              "hidden": null,
              "minimum": null,
              "maximum": null,
              "defaultObjectUI": null,
              "disabledInputMethods": null,
              "displayMode": null,
              "format": null,
              "additionalProperties": false
            },
            "url": {
              "label": "Product URL",
              "type": "string",
              "required": false,
              "multiple": false,
              "allowNull": false,
              "dynamic": false,
              "default": null,
              "choices": null,
              "placeholder": null,
              "properties": null,
              "category": null,
              "depends_on": null,
              "readOnly": null,
              "hidden": null,
              "minimum": null,
              "maximum": null,
              "defaultObjectUI": null,
              "disabledInputMethods": null,
              "displayMode": null,
              "format": null,
              "additionalProperties": false
            },
            "image_url": {
              "label": "Product Image URL",
              "type": "string",
              "required": false,
              "multiple": false,
              "allowNull": false,
              "dynamic": false,
              "default": null,
              "choices": null,
              "placeholder": null,
              "properties": null,
              "category": null,
              "depends_on": null,
              "readOnly": null,
              "hidden": null,
              "minimum": null,
              "maximum": null,
              "defaultObjectUI": null,
              "disabledInputMethods": null,
              "displayMode": null,
              "format": null,
              "additionalProperties": false
            }
          },
          "category": null,
          "depends_on": null,
          "readOnly": null,
          "hidden": null,
          "minimum": null,
          "maximum": null,
          "defaultObjectUI": null,
          "disabledInputMethods": null,
          "displayMode": null,
          "format": null,
          "additionalProperties": false
        },
        "customerId": {
          "label": "Customer ID",
          "description": "The user's customer ID.",
          "type": "string",
          "required": false,
          "multiple": false,
          "allowNull": false,
          "dynamic": false,
          "default": {
            "@if": {
              "exists": {
                "@path": "$.properties.customerId"
              },
              "then": {
                "@path": "$.properties.customerId"
              },
              "else": {
                "@path": "$.userId"
              }
            }
          },
          "choices": null,
          "placeholder": null,
          "properties": null,
          "category": null,
          "depends_on": null,
          "readOnly": null,
          "hidden": null,
          "minimum": null,
          "maximum": null,
          "defaultObjectUI": null,
          "disabledInputMethods": null,
          "displayMode": null,
          "format": null,
          "additionalProperties": false
        },
        "anonymousId": {
          "label": "Anonymous ID",
          "description": "The user's anonymous ID.",
          "type": "string",
          "required": false,
          "multiple": false,
          "allowNull": false,
          "dynamic": false,
          "default": {
            "@path": "$.anonymousId"
          },
          "choices": null,
          "placeholder": null,
          "properties": null,
          "category": null,
          "depends_on": null,
          "readOnly": null,
          "hidden": null,
          "minimum": null,
          "maximum": null,
          "defaultObjectUI": null,
          "disabledInputMethods": null,
          "displayMode": null,
          "format": null,
          "additionalProperties": false
        },
        "email": {
          "label": "Email",
          "description": "The user's email address.",
          "type": "string",
          "required": false,
          "multiple": false,
          "allowNull": false,
          "dynamic": false,
          "default": {
            "@path": "$.properties.email"
          },
          "choices": null,
          "placeholder": null,
          "properties": null,
          "category": null,
          "depends_on": null,
          "readOnly": null,
          "hidden": null,
          "minimum": null,
          "maximum": null,
          "defaultObjectUI": null,
          "disabledInputMethods": null,
          "displayMode": null,
          "format": null,
          "additionalProperties": false
        },
        "isNewCustomer": {
          "label": "New Customer Flag",
          "description": "Flag to indicate whether the user is a new customer.",
          "type": "boolean",
          "required": false,
          "multiple": false,
          "allowNull": false,
          "dynamic": false,
          "default": {
            "@path": "$.properties.isNewCustomer"
          },
          "choices": null,
          "placeholder": null,
          "properties": null,
          "category": null,
          "depends_on": null,
          "readOnly": null,
          "hidden": null,
          "minimum": null,
          "maximum": null,
          "defaultObjectUI": null,
          "disabledInputMethods": null,
          "displayMode": null,
          "format": null,
          "additionalProperties": false
        },
        "loyaltyStatus": {
          "label": "Loyalty Program Status",
          "description": "The status of the user in your loyalty program. Valid values are \"in\", \"out\", or \"blocked\".",
          "type": "string",
          "required": false,
          "multiple": false,
          "allowNull": false,
          "dynamic": false,
          "default": {
            "@path": "$.properties.loyaltyStatus"
          },
          "choices": null,
          "placeholder": null,
          "properties": null,
          "category": null,
          "depends_on": null,
          "readOnly": null,
          "hidden": null,
          "minimum": null,
          "maximum": null,
          "defaultObjectUI": null,
          "disabledInputMethods": null,
          "displayMode": null,
          "format": null,
          "additionalProperties": false
        },
        "firstName": {
          "label": "First Name",
          "description": "The user's given name.",
          "type": "string",
          "required": false,
          "multiple": false,
          "allowNull": false,
          "dynamic": false,
          "default": {
            "@path": "$.properties.firstName"
          },
          "choices": null,
          "placeholder": null,
          "properties": null,
          "category": null,
          "depends_on": null,
          "readOnly": null,
          "hidden": null,
          "minimum": null,
          "maximum": null,
          "defaultObjectUI": null,
          "disabledInputMethods": null,
          "displayMode": null,
          "format": null,
          "additionalProperties": false
        },
        "lastName": {
          "label": "Last Name",
          "description": "The user's surname.",
          "type": "string",
          "required": false,
          "multiple": false,
          "allowNull": false,
          "dynamic": false,
          "default": {
            "@path": "$.properties.lastName"
          },
          "choices": null,
          "placeholder": null,
          "properties": null,
          "category": null,
          "depends_on": null,
          "readOnly": null,
          "hidden": null,
          "minimum": null,
          "maximum": null,
          "defaultObjectUI": null,
          "disabledInputMethods": null,
          "displayMode": null,
          "format": null,
          "additionalProperties": false
        },
        "name": {
          "label": "Name",
          "description": "The user's full name.",
          "type": "string",
          "required": false,
          "multiple": false,
          "allowNull": false,
          "dynamic": false,
          "default": {
            "@path": "$.properties.name"
          },
          "choices": null,
          "placeholder": null,
          "properties": null,
          "category": null,
          "depends_on": null,
          "readOnly": null,
          "hidden": null,
          "minimum": null,
          "maximum": null,
          "defaultObjectUI": null,
          "disabledInputMethods": null,
          "displayMode": null,
          "format": null,
          "additionalProperties": false
        },
        "age": {
          "label": "Age",
          "description": "The user's age.",
          "type": "number",
          "required": false,
          "multiple": false,
          "allowNull": false,
          "dynamic": false,
          "default": {
            "@path": "$.properties.age"
          },
          "choices": null,
          "placeholder": null,
          "properties": null,
          "category": null,
          "depends_on": null,
          "readOnly": null,
          "hidden": null,
          "minimum": null,
          "maximum": null,
          "defaultObjectUI": null,
          "disabledInputMethods": null,
          "displayMode": null,
          "format": null,
          "additionalProperties": false
        },
        "birthday": {
          "label": "Birthday",
          "description": "The user's birthday in the format \"YYYY-MM-DD\", or \"0000-MM-DD\" to omit the year.",
          "type": "string",
          "required": false,
          "multiple": false,
          "allowNull": false,
          "dynamic": false,
          "default": {
            "@path": "$.properties.birthday"
          },
          "choices": null,
          "placeholder": null,
          "properties": null,
          "category": null,
          "depends_on": null,
          "readOnly": null,
          "hidden": null,
          "minimum": null,
          "maximum": null,
          "defaultObjectUI": null,
          "disabledInputMethods": null,
          "displayMode": null,
          "format": "date",
          "additionalProperties": false
        },
        "friendbuyAttributes": {
          "label": "Custom Attributes",
          "description": "Custom attributes to send to Friendbuy. You should pass an object whose keys are the names of the custom attributes and whose values are strings. Non-string-valued attributes will be dropped.",
          "type": "object",
          "required": false,
          "multiple": false,
          "allowNull": false,
          "dynamic": false,
          "default": {
            "@path": "$.properties.friendbuyAttributes"
          },
          "choices": null,
          "placeholder": null,
          "properties": null,
          "category": null,
          "depends_on": null,
          "readOnly": null,
          "hidden": null,
          "minimum": null,
          "maximum": null,
          "defaultObjectUI": null,
          "disabledInputMethods": null,
          "displayMode": null,
          "format": null,
          "additionalProperties": false
        }
      }
    },
    "trackSignUp": {
      "title": "Track Sign Up",
      "description": "Record when a customer signs up for a service.",
      "platform": "web",
      "defaultSubscription": "event = \"Signed Up\"",
      "hidden": false,
      "hasPerformBatch": false,
      "syncMode": null,
      "hooks": null,
      "dynamicFields": null,
      "fields": {
        "customerId": {
          "label": "Customer ID",
          "description": "The user's customer ID.",
          "type": "string",
          "required": true,
          "multiple": false,
          "allowNull": false,
          "dynamic": false,
          "default": {
            "@if": {
              "exists": {
                "@path": "$.properties.customerId"
              },
              "then": {
                "@path": "$.properties.customerId"
              },
              "else": {
                "@path": "$.userId"
              }
            }
          },
          "choices": null,
          "placeholder": null,
          "properties": null,
          "category": null,
          "depends_on": null,
          "readOnly": null,
          "hidden": null,
          "minimum": null,
          "maximum": null,
          "defaultObjectUI": null,
          "disabledInputMethods": null,
          "displayMode": null,
          "format": null,
          "additionalProperties": false
        },
        "anonymousId": {
          "label": "Anonymous ID",
          "description": "The user's anonymous ID.",
          "type": "string",
          "required": false,
          "multiple": false,
          "allowNull": false,
          "dynamic": false,
          "default": {
            "@path": "$.anonymousId"
          },
          "choices": null,
          "placeholder": null,
          "properties": null,
          "category": null,
          "depends_on": null,
          "readOnly": null,
          "hidden": null,
          "minimum": null,
          "maximum": null,
          "defaultObjectUI": null,
          "disabledInputMethods": null,
          "displayMode": null,
          "format": null,
          "additionalProperties": false
        },
        "email": {
          "label": "Email",
          "description": "The user's email address.",
          "type": "string",
          "required": true,
          "multiple": false,
          "allowNull": false,
          "dynamic": false,
          "default": {
            "@path": "$.properties.email"
          },
          "choices": null,
          "placeholder": null,
          "properties": null,
          "category": null,
          "depends_on": null,
          "readOnly": null,
          "hidden": null,
          "minimum": null,
          "maximum": null,
          "defaultObjectUI": null,
          "disabledInputMethods": null,
          "displayMode": null,
          "format": null,
          "additionalProperties": false
        },
        "isNewCustomer": {
          "label": "New Customer Flag",
          "description": "Flag to indicate whether the user is a new customer.",
          "type": "boolean",
          "required": false,
          "multiple": false,
          "allowNull": false,
          "dynamic": false,
          "default": {
            "@path": "$.properties.isNewCustomer"
          },
          "choices": null,
          "placeholder": null,
          "properties": null,
          "category": null,
          "depends_on": null,
          "readOnly": null,
          "hidden": null,
          "minimum": null,
          "maximum": null,
          "defaultObjectUI": null,
          "disabledInputMethods": null,
          "displayMode": null,
          "format": null,
          "additionalProperties": false
        },
        "loyaltyStatus": {
          "label": "Loyalty Program Status",
          "description": "The status of the user in your loyalty program. Valid values are \"in\", \"out\", or \"blocked\".",
          "type": "string",
          "required": false,
          "multiple": false,
          "allowNull": false,
          "dynamic": false,
          "default": {
            "@path": "$.properties.loyaltyStatus"
          },
          "choices": null,
          "placeholder": null,
          "properties": null,
          "category": null,
          "depends_on": null,
          "readOnly": null,
          "hidden": null,
          "minimum": null,
          "maximum": null,
          "defaultObjectUI": null,
          "disabledInputMethods": null,
          "displayMode": null,
          "format": null,
          "additionalProperties": false
        },
        "firstName": {
          "label": "First Name",
          "description": "The user's given name.",
          "type": "string",
          "required": false,
          "multiple": false,
          "allowNull": false,
          "dynamic": false,
          "default": {
            "@path": "$.properties.firstName"
          },
          "choices": null,
          "placeholder": null,
          "properties": null,
          "category": null,
          "depends_on": null,
          "readOnly": null,
          "hidden": null,
          "minimum": null,
          "maximum": null,
          "defaultObjectUI": null,
          "disabledInputMethods": null,
          "displayMode": null,
          "format": null,
          "additionalProperties": false
        },
        "lastName": {
          "label": "Last Name",
          "description": "The user's surname.",
          "type": "string",
          "required": false,
          "multiple": false,
          "allowNull": false,
          "dynamic": false,
          "default": {
            "@path": "$.properties.lastName"
          },
          "choices": null,
          "placeholder": null,
          "properties": null,
          "category": null,
          "depends_on": null,
          "readOnly": null,
          "hidden": null,
          "minimum": null,
          "maximum": null,
          "defaultObjectUI": null,
          "disabledInputMethods": null,
          "displayMode": null,
          "format": null,
          "additionalProperties": false
        },
        "name": {
          "label": "Name",
          "description": "The user's full name.",
          "type": "string",
          "required": false,
          "multiple": false,
          "allowNull": false,
          "dynamic": false,
          "default": {
            "@path": "$.properties.name"
          },
          "choices": null,
          "placeholder": null,
          "properties": null,
          "category": null,
          "depends_on": null,
          "readOnly": null,
          "hidden": null,
          "minimum": null,
          "maximum": null,
          "defaultObjectUI": null,
          "disabledInputMethods": null,
          "displayMode": null,
          "format": null,
          "additionalProperties": false
        },
        "age": {
          "label": "Age",
          "description": "The user's age.",
          "type": "number",
          "required": false,
          "multiple": false,
          "allowNull": false,
          "dynamic": false,
          "default": {
            "@path": "$.properties.age"
          },
          "choices": null,
          "placeholder": null,
          "properties": null,
          "category": null,
          "depends_on": null,
          "readOnly": null,
          "hidden": null,
          "minimum": null,
          "maximum": null,
          "defaultObjectUI": null,
          "disabledInputMethods": null,
          "displayMode": null,
          "format": null,
          "additionalProperties": false
        },
        "birthday": {
          "label": "Birthday",
          "description": "The user's birthday in the format \"YYYY-MM-DD\", or \"0000-MM-DD\" to omit the year.",
          "type": "string",
          "required": false,
          "multiple": false,
          "allowNull": false,
          "dynamic": false,
          "default": {
            "@path": "$.properties.birthday"
          },
          "choices": null,
          "placeholder": null,
          "properties": null,
          "category": null,
          "depends_on": null,
          "readOnly": null,
          "hidden": null,
          "minimum": null,
          "maximum": null,
          "defaultObjectUI": null,
          "disabledInputMethods": null,
          "displayMode": null,
          "format": "date",
          "additionalProperties": false
        },
        "coupon": {
          "label": "Coupon Code",
          "description": "Coupon code that customer supplied when they signed up.",
          "type": "string",
          "required": false,
          "multiple": false,
          "allowNull": false,
          "dynamic": false,
          "default": {
            "@path": "$.properties.coupon"
          },
          "choices": null,
          "placeholder": null,
          "properties": null,
          "category": null,
          "depends_on": null,
          "readOnly": null,
          "hidden": null,
          "minimum": null,
          "maximum": null,
          "defaultObjectUI": null,
          "disabledInputMethods": null,
          "displayMode": null,
          "format": null,
          "additionalProperties": false
        },
        "attributionId": {
          "label": "Friendbuy Attribution ID",
          "description": "Friendbuy attribution ID that associates the customer who is signing up with the advocate who referred them.",
          "type": "string",
          "required": false,
          "multiple": false,
          "allowNull": false,
          "dynamic": false,
          "default": {
            "@path": "$.properties.attributionId"
          },
          "choices": null,
          "placeholder": null,
          "properties": null,
          "category": null,
          "depends_on": null,
          "readOnly": null,
          "hidden": null,
          "minimum": null,
          "maximum": null,
          "defaultObjectUI": null,
          "disabledInputMethods": null,
          "displayMode": null,
          "format": null,
          "additionalProperties": false
        },
        "referralCode": {
          "label": "Friendbuy Referral ID",
          "description": "Friendbuy referral code that associates the customer who is signing up with the advocate who referred them.",
          "type": "string",
          "required": false,
          "multiple": false,
          "allowNull": false,
          "dynamic": false,
          "default": {
            "@path": "$.properties.referralCode"
          },
          "choices": null,
          "placeholder": null,
          "properties": null,
          "category": null,
          "depends_on": null,
          "readOnly": null,
          "hidden": null,
          "minimum": null,
          "maximum": null,
          "defaultObjectUI": null,
          "disabledInputMethods": null,
          "displayMode": null,
          "format": null,
          "additionalProperties": false
        },
        "friendbuyAttributes": {
          "label": "Custom Attributes",
          "description": "Custom attributes to send to Friendbuy. You should pass an object whose keys are the names of the custom attributes and whose values are strings. Non-string-valued attributes will be dropped.",
          "type": "object",
          "required": false,
          "multiple": false,
          "allowNull": false,
          "dynamic": false,
          "default": {
            "@path": "$.properties.friendbuyAttributes"
          },
          "choices": null,
          "placeholder": null,
          "properties": null,
          "category": null,
          "depends_on": null,
          "readOnly": null,
          "hidden": null,
          "minimum": null,
          "maximum": null,
          "defaultObjectUI": null,
          "disabledInputMethods": null,
          "displayMode": null,
          "format": null,
          "additionalProperties": false
        }
      }
    },
    "trackPage": {
      "title": "Track Page",
      "description": "Record when a customer visits a new page. Allow Friendbuy widget targeting by Page Name instead of URL.",
      "platform": "web",
      "defaultSubscription": "type = \"page\"",
      "hidden": false,
      "hasPerformBatch": false,
      "syncMode": null,
      "hooks": null,
      "dynamicFields": null,
      "fields": {
        "name": {
          "label": "Page Name",
          "description": "The page name.",
          "type": "string",
          "required": false,
          "multiple": false,
          "allowNull": false,
          "dynamic": false,
          "default": {
            "@path": "$.name"
          },
          "choices": null,
          "placeholder": null,
          "properties": null,
          "category": null,
          "depends_on": null,
          "readOnly": null,
          "hidden": null,
          "minimum": null,
          "maximum": null,
          "defaultObjectUI": null,
          "disabledInputMethods": null,
          "displayMode": null,
          "format": null,
          "additionalProperties": false
        },
        "category": {
          "label": "Page Category",
          "description": "The page category.",
          "type": "string",
          "required": false,
          "multiple": false,
          "allowNull": false,
          "dynamic": false,
          "default": {
            "@path": "$.category"
          },
          "choices": null,
          "placeholder": null,
          "properties": null,
          "category": null,
          "depends_on": null,
          "readOnly": null,
          "hidden": null,
          "minimum": null,
          "maximum": null,
          "defaultObjectUI": null,
          "disabledInputMethods": null,
          "displayMode": null,
          "format": null,
          "additionalProperties": false
        },
        "title": {
          "label": "Page Title",
          "description": "The page title.",
          "type": "string",
          "required": false,
          "multiple": false,
          "allowNull": false,
          "dynamic": false,
          "default": {
            "@path": "$.properties.title"
          },
          "choices": null,
          "placeholder": null,
          "properties": null,
          "category": null,
          "depends_on": null,
          "readOnly": null,
          "hidden": null,
          "minimum": null,
          "maximum": null,
          "defaultObjectUI": null,
          "disabledInputMethods": null,
          "displayMode": null,
          "format": null,
          "additionalProperties": false
        }
      }
    },
    "trackCustomEvent": {
      "title": "Track Custom Event",
      "description": "Record when a customer completes any custom event that you define.",
      "platform": "web",
      "defaultSubscription": null,
      "hidden": false,
      "hasPerformBatch": false,
      "syncMode": null,
      "hooks": null,
      "dynamicFields": null,
      "fields": {
        "eventType": {
          "label": "Event Type",
          "description": "The type of the event to track.",
          "type": "string",
          "required": true,
          "multiple": false,
          "allowNull": false,
          "dynamic": false,
          "default": {
            "@path": "$.event"
          },
          "choices": null,
          "placeholder": null,
          "properties": null,
          "category": null,
          "depends_on": null,
          "readOnly": null,
          "hidden": null,
          "minimum": null,
          "maximum": null,
          "defaultObjectUI": null,
          "disabledInputMethods": null,
          "displayMode": null,
          "format": null,
          "additionalProperties": false
        },
        "eventProperties": {
          "label": "Event Properties",
          "description": "Object containing the properties for the event being tracked. All of the fields in this object will be sent in the root of the Friendbuy track event.",
          "type": "object",
          "required": true,
          "multiple": false,
          "allowNull": false,
          "dynamic": false,
          "default": {
            "@path": "$.properties"
          },
          "choices": null,
          "placeholder": null,
          "properties": null,
          "category": null,
          "depends_on": null,
          "readOnly": null,
          "hidden": null,
          "minimum": null,
          "maximum": null,
          "defaultObjectUI": null,
          "disabledInputMethods": null,
          "displayMode": null,
          "format": null,
          "additionalProperties": false
        },
        "deduplicationId": {
          "label": "Event ID",
          "description": "An identifier for the event being tracked to prevent the same event from being rewarded more than once.",
          "type": "string",
          "required": false,
          "multiple": false,
          "allowNull": false,
          "dynamic": false,
          "default": {
            "@path": "$.properties.deduplicationId"
          },
          "choices": null,
          "placeholder": null,
          "properties": null,
          "category": null,
          "depends_on": null,
          "readOnly": null,
          "hidden": null,
          "minimum": null,
          "maximum": null,
          "defaultObjectUI": null,
          "disabledInputMethods": null,
          "displayMode": null,
          "format": null,
          "additionalProperties": false
        },
        "customerId": {
          "label": "Customer ID",
          "description": "The user's customer ID.",
          "type": "string",
          "required": true,
          "multiple": false,
          "allowNull": false,
          "dynamic": false,
          "default": {
            "@if": {
              "exists": {
                "@path": "$.properties.customerId"
              },
              "then": {
                "@path": "$.properties.customerId"
              },
              "else": {
                "@path": "$.userId"
              }
            }
          },
          "choices": null,
          "placeholder": null,
          "properties": null,
          "category": null,
          "depends_on": null,
          "readOnly": null,
          "hidden": null,
          "minimum": null,
          "maximum": null,
          "defaultObjectUI": null,
          "disabledInputMethods": null,
          "displayMode": null,
          "format": null,
          "additionalProperties": false
        },
        "anonymousId": {
          "label": "Anonymous ID",
          "description": "The user's anonymous id",
          "type": "string",
          "required": false,
          "multiple": false,
          "allowNull": false,
          "dynamic": false,
          "default": {
            "@path": "$.anonymousId"
          },
          "choices": null,
          "placeholder": null,
          "properties": null,
          "category": null,
          "depends_on": null,
          "readOnly": null,
          "hidden": null,
          "minimum": null,
          "maximum": null,
          "defaultObjectUI": null,
          "disabledInputMethods": null,
          "displayMode": null,
          "format": null,
          "additionalProperties": false
        },
        "email": {
          "label": "Email",
          "description": "The user's email address.",
          "type": "string",
          "required": false,
          "multiple": false,
          "allowNull": false,
          "dynamic": false,
          "default": {
            "@path": "$.properties.email"
          },
          "choices": null,
          "placeholder": null,
          "properties": null,
          "category": null,
          "depends_on": null,
          "readOnly": null,
          "hidden": null,
          "minimum": null,
          "maximum": null,
          "defaultObjectUI": null,
          "disabledInputMethods": null,
          "displayMode": null,
          "format": null,
          "additionalProperties": false
        }
      }
    }
  },
  "presets": [
    {
      "name": "Track Customer",
      "type": "automatic",
      "partnerAction": "trackCustomer",
      "subscribe": "type = \"identify\"",
      "mapping": {
        "customerId": {
          "@path": "$.userId"
        },
        "anonymousId": {
          "@path": "$.anonymousId"
        },
        "email": {
          "@path": "$.traits.email"
        },
        "firstName": {
          "@path": "$.traits.firstName"
        },
        "lastName": {
          "@path": "$.traits.lastName"
        },
        "name": {
          "@path": "$.traits.name"
        },
        "age": {
          "@path": "$.traits.age"
        },
        "birthday": {
          "@path": "$.traits.birthday"
        },
        "language": {
          "@path": "$.traits.language"
        },
        "addressCountry": {
          "@path": "$.traits.address.country"
        },
        "addressState": {
          "@path": "$.traits.address.state"
        },
        "addressCity": {
          "@path": "$.traits.address.city"
        },
        "addressPostalCode": {
          "@path": "$.traits.address.postalCode"
        },
        "customerSince": {
          "@path": "$.traits.customerSince"
        },
        "loyaltyStatus": {
          "@path": "$.traits.loyaltyStatus"
        },
        "isNewCustomer": {
          "@path": "$.traits.isNewCustomer"
        },
        "friendbuyAttributes": {
          "@path": "$.traits.friendbuyAttributes"
        }
      },
      "eventSlug": null
    },
    {
      "name": "Track Purchase",
      "type": "automatic",
      "partnerAction": "trackPurchase",
      "subscribe": "event = \"Order Completed\"",
      "mapping": {
        "orderId": {
          "@path": "$.properties.order_id"
        },
        "amount": {
          "@path": "$.properties.total"
        },
        "currency": {
          "@path": "$.properties.currency"
        },
        "coupon": {
          "@path": "$.properties.coupon"
        },
        "attributionId": {
          "@path": "$.properties.attributionId"
        },
        "referralCode": {
          "@path": "$.properties.referralCode"
        },
        "giftCardCodes": {
          "@path": "$.properties.giftCardCodes"
        },
        "products": {
          "@path": "$.properties.products"
        },
        "customerId": {
          "@if": {
            "exists": {
              "@path": "$.properties.customerId"
            },
            "then": {
              "@path": "$.properties.customerId"
            },
            "else": {
              "@path": "$.userId"
            }
          }
        },
        "anonymousId": {
          "@path": "$.anonymousId"
        },
        "email": {
          "@path": "$.properties.email"
        },
        "isNewCustomer": {
          "@path": "$.properties.isNewCustomer"
        },
        "loyaltyStatus": {
          "@path": "$.properties.loyaltyStatus"
        },
        "firstName": {
          "@path": "$.properties.firstName"
        },
        "lastName": {
          "@path": "$.properties.lastName"
        },
        "name": {
          "@path": "$.properties.name"
        },
        "age": {
          "@path": "$.properties.age"
        },
        "birthday": {
          "@path": "$.properties.birthday"
        },
        "friendbuyAttributes": {
          "@path": "$.properties.friendbuyAttributes"
        }
      },
      "eventSlug": null
    },
    {
      "name": "Track Sign Up",
      "type": "automatic",
      "partnerAction": "trackSignUp",
      "subscribe": "event = \"Signed Up\"",
      "mapping": {
        "customerId": {
          "@if": {
            "exists": {
              "@path": "$.properties.customerId"
            },
            "then": {
              "@path": "$.properties.customerId"
            },
            "else": {
              "@path": "$.userId"
            }
          }
        },
        "anonymousId": {
          "@path": "$.anonymousId"
        },
        "email": {
          "@path": "$.properties.email"
        },
        "isNewCustomer": {
          "@path": "$.properties.isNewCustomer"
        },
        "loyaltyStatus": {
          "@path": "$.properties.loyaltyStatus"
        },
        "firstName": {
          "@path": "$.properties.firstName"
        },
        "lastName": {
          "@path": "$.properties.lastName"
        },
        "name": {
          "@path": "$.properties.name"
        },
        "age": {
          "@path": "$.properties.age"
        },
        "birthday": {
          "@path": "$.properties.birthday"
        },
        "coupon": {
          "@path": "$.properties.coupon"
        },
        "attributionId": {
          "@path": "$.properties.attributionId"
        },
        "referralCode": {
          "@path": "$.properties.referralCode"
        },
        "friendbuyAttributes": {
          "@path": "$.properties.friendbuyAttributes"
        }
      },
      "eventSlug": null
    },
    {
      "name": "Track Page",
      "type": "automatic",
      "partnerAction": "trackPage",
      "subscribe": "type = \"page\"",
      "mapping": {
        "name": {
          "@path": "$.name"
        },
        "category": {
          "@path": "$.category"
        },
        "title": {
          "@path": "$.properties.title"
        }
      },
      "eventSlug": null
    }
  ]
}
