Public Backlog

WebinOne announcements, releases, updates and achievements

v7.0.3 Release date: 06 Sep, 2024

New Component for Booking Subscriptions

Add new component tag for Bookings.

The {% component type:"booking_subscriptions" %} component returns subscriptions. It either returns all existing subscriptions or only the subscriptions of the current user.

Pattern:

{% component type:"booking_subscriptions", viewType:"[[viewType]]", object:"[[object]]", currentMemberOnly: [[currentMemberOnly]], filterBy:"[[filterBy]]", filterValue:"[[filterValue]]", filterCondition:"[[filterCondition]]", collectionVariable:"", layout:"", sortBy:"", sortOrder:"", limit:"[[limit]]", offset:"[[offset]]" %}
  • viewType
    • List [default]
    • Detail
  • currentMemberOnly [Boolean | default = true] (not required)
    • if false get all booking subscriptions of all users
    • otherwise get booking subscriptions of current logged in CRM member only
  • object [item|collection - default = collection] (not required)
  • collectionVariable (not required)
    • works the same way as in type: module.
  • layout (not required)
    • path to FTP file that will contain layout content that needs to be parsed.
    • If specified empty string - do not render anything.
    • If not specified at all - render default virtual layout.
  • sortBy (not required)
    • Id [default]
    • FormId
    • MemberId
    • FormName
    • CreatedDateTime
  • sortOrder (not required)
    • ASC
    • DESC [default]
  • filterBy (not required) [default = empty]
    • Id
    • FormId
    • MemberId
    • FormName
    • CreatedDateTime
  • filterValue (not required)
    • value to use in filtering condition
  • filterCondition (not required)
    • Equally [default]
    • less
    • more
    • lessEqually
    • moreEqualy
    • contains
  • limit (not required) [default = 10]
  • offset (not required) [default = 0]

Single tag item context is described below.
If object = collection than this contains attribute property that holds the list of attributes (ie: {{this.items}}):

viewType == list

{
    "formId": 0,
    "memberId": 0,
    "id": 0,
    "formName": "",
    "EventName": "",
    "Allocation": 0,
    "Price": "",
    "dateSubmission": ""
}

viewType == detail

{
    "formId": 0,
    "memberId": 0,
    "fields": [
       {
          "name": "",
          "alias": "",
          "value": "",
          "type": ""
       }
    ],
    "id": 0,
    "formName": "",
    "EventName": "",
    "Allocation": 0,
    "Price": "",
    "dateSubmission": ""
}

Default virtual layout:

<ul>
    {% for item in this.items %}
    <li>
        <strong>{{item.formName}}</strong>
        <span>Date Submission: {{item.dateSubmission | format_date: "dddd, MMMM dd, yyyy"}}</span>
    </li>
    {% endfor %}
</ul>

The new component will be added here: https://prnt.sc/wqRi_L8xLv9o

Screenshots:
https://prnt.sc/6cP1FQJD1Z2y
https://prnt.sc/AS93RF_SyYZe

v7.0 Release date: 05 Jun, 2024

Forms: Assigned CRM Groups Issue

  1. Create two different CRM groups: one applied to "Form Submissions" and the other to "Event Booking" (Screenshot for reference: Link).
  2. Go to Forms and create a new form.
  3. Assign both CRM groups to the created form (Screenshot for reference: Link).
  4. Submit the form from the frontend.
  5. Go to Form Submissions.
  6. The "Event Booking" CRM group should not be applied to form submissions (Screenshot for reference: Link).

The same issue occurs with event bookings, where the "Form Submissions" CRM group should not be applied to event bookings (Screenshot for reference: Link).

Custom Module: Creating Items from Frontend with Enabled Bookings

  1. Go to Custom Module settings.
  2. Enable bookings (Screenshot for reference: Link).
  3. Create a new module item from the admin and add a form for creating module items from the frontend on any page.

Result:

  • In the admin, the "Event Date End" field is required (Screenshot for reference: Link).
  • In the form for creating an item from the frontend, this field is not required (Screenshot for reference: Link).

Screen recording for reference.

v 6.9 Release date: 16 Nov, 2022

Contacts - uppercase letters

1. Go to contacts

2. Pay attention to the member with uppercase letters in the "email" field

3. After submitting any form from a member with uppercase letters a duplicate of that user with a letter with lowercase letters is created in the email field

Fix - migration where the original and duplicate contacts were merged into one with all cases, bookings, orders, and secure zones

{% endraw %}
v 6.8 Release date: 03 Oct, 2022

Checklist values with commas improvement

1) Request params improvement

Add new property to ‘request.request_url’ liquid object

  • request.request_url.originalParams

Value is an object of all URL params however arrays should be represented as arrays instead of as CSV string

Example:

  • /lab?myArrayProp=option%201&myArrayProp=opti,on%202&myTextprop=textValue

<pre>{{request.request_url.params}}</pre>

Outputs:

{ 
"myarrayprop": "option 1,opti,on 2",
"mytextprop": "textValue"
}

<pre>{{request.request_url.originalParams}}</pre>

Outputs:

{ 
"myarrayprop": ["option 1", "opti,on 2"],
"mytextprop": "textValue"
}

2) Advanced CRM group field liquid object improvement

Add ‘ArrayValue’ property. If a field is checklist or dropdown (multiple) - paste selected options as an array to this property.

For all other fields paste value as first element of the array

Example:

{% component groupAlias: "MyAdvancedCRMGroup", entityType: "contact", entityId: "12345", collectionVariable: "groupFieldsList", layout: "", type: "CRMContactCustomGroup" %}

{{groupFieldsList}}

Output:

{ 
"Name" : "My Checklist",
"Alias" : "MyChecklist",
"Value" : "check 1,che,ck 3,check 4",
"ArrayValue" : ["check 1", "che,ck 3", "check 4"]
},
{
"Name" : "My Text",
"Alias" : "MyText",
"Value" : "my, some text",
"ArrayValue" : ["my, some text"]
},
{
"Name" : "My Number",
"Alias" : "MyMuber",
"Value" : 123,
"ArrayValue" : ["123"]
}

3) Save entity improvement

For the following property types:

  • checklist
  • dropdown multiple

View selected options of the property of type checklist or dropdown multiple as CSV string on list and detail layouts in Admin UI

  • If options are like
    • option 5
    • option 6
    • option 7,7
  • CSV string should be like
    • option 5 5,option 6,option 7,7

Provide the ability to save selected options if they contain "," character

  • via Admin UI
    • Create module item
    • Edit module item
    • Create CRM Contanct (advanced CRM fields)
    • Edit  CRM Contanct (advanced CRM fields)
    • Create CRM Form Submission  (advanced CRM fields)
    • Edit  CRM Form Submission (advanced CRM fields)
    • Create CRM Event Booking (advanced CRM fields)
    • Edit  CRM Event Booking (advanced CRM fields)
    • Create CRM Order (advanced CRM fields)
    • Edit  CRM Order (advanced CRM fields)
  • via save/edit entity frontent form
    • Form submission
    • Edit account form
    • Create module item form
    • Edit module item form

Entities that requires this improvement (admin UI)

  • module item
  • case
    • custom form fields
    • advanced crm fields
  • order
    • advanced crm fields
  • event booking
    • advanced crm fields

Add also following updates to module item update and search forms (site frontend forms)

  • Module item update form
    • For Checklist property type

      var propertyValues="{{this.ListcheckboxList | join:","}}".split(',');

      change to

      var propertyValues="{{this.ListcheckboxList | join:"|||;/;|||"}}".split('|||;/;|||');
    • For Dropdown (multiple) property type

      var values='{{this.ListListbox_list}}'.split(',');

      change to

      var values='{{this.ListListbox_list | join:"|||;/;|||"}}'.split('|||;/;|||');
  • Module item search form
    • For Checklist property type

      var propertyValues="{{request.request_url.params.prop_ListcheckboxList}}".split(',');

      change to

      var propertyValues="{{request.request_url.originalParams.prop_ListcheckboxList | join:"|||;/;|||"}}".split('|||;/;|||');
    • For Dropdown (multiple) property type

      var values='{{request.request_url.params.prop_ListListbox_list}}'.split(',');

      change to

      var values='{{request.request_url.originalParams.prop_ListListbox_list | join:"|||;/;|||"}}'.split('|||;/;|||');

4) Custom report improvement

According to the Save entity improvement improve custom report results searching by filters that contain value with "," character

  • filtering by custom form field on the following report types
    • Contacts and Cases
    • Contacts and Orders
    • Contacts and Event Bookings
  • filtering by advanced crm field on the following report types
    • Contacts
    • Contacts and Cases
    • Contacts and Orders
    • Contacts and Event Bookings
    • Contacts and Secure Zones

5) Import/Export improvement

Add following logic to import/export process for the following entities:

  • Module item
  • Contact
  • Case
  • Booking
  • Order

Logic:
For any property with type Checklist or Dropdown (multiple)

  • On Export
    • When generating CSV string of selected options replace "," substring with "%2С"
  • On Import
    • After retrieving list of selected options from CSV string for each option replace "%2С" substring with ","

Example:

  • Export
    • options
      • option 5
      • option 6
      • option 7,7
  • CSV string for the property (to the excel cell)
    • option 5,option 6,option 7%2С7
  • Import
    • CSV string for the property (from excel cell)
      • option 5,option 6,option 7%2С7
    • result list of options to be applied
      • option 5
      • option 6
      • option 7,7

6) Improve filters on custom reports

`In` and `NotIn` filters:
Add a new setting to the filter called:

  • Values Filter Condition (dropdown)
    • OR (default)
    • AND

Logic:

  • If OR selected (current logic will be applied) - will find all items that have at least one value from the filter values list
  • If AND selected - will find all items that have all values from the filter values list

Design: https://prnt.sc/KsffJVqXl2pm

Example:

Add an advanced CRM group with the field “theChecklist” to the contact of type Checkbox:

  • options
    • 1
    • 2
    • 3
    • 4

Select the following values for the contacts:

  • Contact1
    • theChecklist
      • 1
      • 3
  • Contact2
    • theChecklist
      • 1
      • 3
      • 4
  • Contact3
    • theChecklist
      • 2
      • 3

Setup Custom report for contacts and:

  • Add filter (using OR):
    • theChecklist
      • 1
      • 4
    • Values Filter Condition
      • OR
    • Results should be
      • Contact1
      • Contact2
  • Add filter (using AND):
    • theChecklist
      • 1
      • 4
    • Values Filter Condition
      • AND
    • Results should be
      • Contact2
v 6.7 Release date: 08 Jun, 2022

Zapier Integration

1) SSO oauth for zapier (+scopes)

Add oAuth 2.0 APIs

  • Authorization
  • Access Token Request
  • Refresh Token Request

Retrieved Bearer token should get access to Treepl CMS APIs created specially for Zapier (for the site that should be determined by domain)

Request Domain field on Zapier in order to retrieve access token to the particular site only

2) Extension rule

Add new Extension to the portal and to extension JSON file so portal user could enable and disable extension on the ‘Site’ -> ‘Extensions’ tab in the Portal

  • Title
    • Zapier Integration (beta)
  • Short Description
    • Allows handling the connection between Treepl CMS and apps that Zapier supports.
  • Information
    • Triggers

      (should be performed by Treepl once appropriate action is made in the CMS):

      -New Module Item
      -Updated Module Item
      -New CRM Member
      -Updated CRM Member
      -New CRM Form Submission
      -Updated CRM Form Submission
      -New CRM Event Booking
      -Updated CRM Event Booking
      -New Order
      -Updated Order
      -New Gift Voucher
      -Updated Gift Voucher
      -Triggered Workflow

    • Actions:

      -Create Module Item
      -Update Module Item
      -Create CRM Member
      -Update CRM Member
      -Create CRM Form Submission
      -Update CRM Form Submission
      -Create CRM Event Booking
      -Update CRM Event Booking
      -Update Order Details
      -Create Gift Voucher
      -Update Gift Voucher

    • Searches:

      -Find Module Item
      -Find CRM Member
      -Find CRM Form Submission
      -Find CRM Event Booking
      -Find Order
      -Find Gift Voucher
  • Pricing
    • Free during the beta period

3) Triggers

Return models for triggers:

  • Module Item
    {
       "Id":5661,
        "Name":"Item 1",
        "URL":"/svsdv/sdv/sdv/sdv/ad/item-1",
        "URL_List":[
            "/svsdv/sdv/sdv/sdv/ad/item-1"
        ],
        "URLSlug":"item-1",
        "ParentId":5654,
        "ParentId_List":[
            -1
        ],
        "ParentName":"",
        "ParentUrl":"",
        "TemplateName":"Don't Use Template",
        "Module_Alias":"MyModule",
        "Module_Id":5654,
        "Enabled":true,
        "ReleaseDate":"2023-03-03T01:00:00",
        "ExpiryDate":"9999-12-31T18:59:00",
        "SiteSearchKeywords":[
           
        ],
        "Description":"desc 1",
        "Weighting":0,
        "DisableForSiteSearch":false,
        "SKUCode":"",
        "Price":0,
        "CreatedByMemberId":"0",
        "ItemCategories":[
           
        ],
        "ItemCategoryIdList":[
           
        ],
        "ItemTags":[
           
        ],
        "Author":0,
        "Author_Name":"",
        "Author_Url":"",
        "ShowPageForSearchEngine":true,
        "MetaTitle":"",
        "SEOTitle":"",
        "MetaDescription":"",
        "CanonicalLink":"",
        "SocialMetaTags":"",
        "SeoPriority":0.5,
        "EnableAMP":false,
        "AMPContent":"",
        "OpenGraphProperties":{
            "Title":"test",
            "Type":"test",
            "Url":"test",
            "Locale":"test",
            "Image":""
        },
        "EventProperties":{
            " | HideWhenFull":false,
            " | AllowMultipleSubscriptionPerEmail":false,
            " | Capacity":0,
            " | Allocation":0,
            " | EventDateStart":"2022-04-26T08:07:54",
            " | EventDateEnd":"2022-04-26T08:07:54"
        },
        "ProductProperties":{
            " | SmallImage":"/Images/productimages/books/computers/flashmx_small.jpg",
            " | LargeImage":"/Images/productimages/books/computers/flashmx_large.jpg",
            " | OnSale":true,
            " | IsGiftVoucher":false,
            " | ProductWeight":0,
            " | ProductWidth":0,
            " | ProductHeight":0,
            " | ProductDepth":0,
            " | EnableDropShipping":false,
            " | UnitType":"",
            " | MinimumUnits":1,
            " | MaximumUnits":0,
            " | RecurringType":"None",
            " | IsShippable":false,
            " | IsDownloadable":false,
            " | NumberOfPossibleDownloads":0,
            " | Supplier":"test@test.test"
        },
        "CustomProperties":{
            " | Custom Property name 1":"",
            " | Custom Property name 2":0
        }
    }
  • CRM Member
    {
        "Id":1442,
        "Email":"test@test.com",
        "FirstName":"Jhon",
        "LastName":"Doe",
        "Address":"",
        "City":"",
        "State":"",
        "ZipCode":"",
        "Country":"",
        "BillingAddress":"",
        "BillingCity":"",
        "BillingState":"",
        "BillingZipCode":"",
        "BillingCountry":"",
        "Site":"",
        "Phone":"123456789",
        "Status":"",
        "Notes":"",
        "Type":"Consumer",
        "CreatedDateTime":"2019-06-12T17:28:59.07",
        "UpdatedDateTime":"2020-08-07T06:56:27.713",
        "CrmType":"Member",
        "CrmGroup":{
            " | My Group Name 1 | ":{
                "My Field Name 1.1":"field Value 1",
                "My Field Name 1.2":"field Value 2"
            },
            " | My Group Name 2 | ":{
                "My Field Name 2.1":"field Value 1",
                "My Field Name 2.2":"field Value 2"
            }
        }
    }
  • CRM Form Submission
    {
        "Id":1442,
        "Form":"form_alias",
        "Email":"test@test.com",
        "FormField":{
            " | My Field Name 1":"field Value 1",
            " | My Field Name 2":"field Value 2"
        },
        "CrmGroup":{
            " | My Group Name 1 | ":{
                "My Field Name 1.1":"field Value 1",
                "My Field Name 1.2":"field Value 2"
            },
            " | My Group Name 2 | ":{
                "My Field Name 2.1":"field Value 1",
                "My Field Name 2.2":"field Value 2"
            }
        }
    }
  • CRM Event Booking
    {
        "Id":1442,
        "Form":"form_alias",
        "Email":"test@test.com",
        "ModuleItem":123,
        "Allocation":1,
        "FormField":{
            " | My Field Name 1":"field Value 1",
            " | My Field Name 2":"field Value 2"
        },
        "CrmGroup":{
            " | My Group Name 1 | ":{
                "My Field Name 1.1":"field Value 1",
                "My Field Name 1.2":"field Value 2"
            },
            " | My Group Name 2 | ":{
                "My Field Name 2.1":"field Value 1",
                "My Field Name 2.2":"field Value 2"
            }
        }
    }
  • Order
    {
        "Id":1442,
        "Email":"test@test.com",
        "OrderName":"Checkout",
        "Status":"Paid",
        "InvoiceNumber":"1234",
        "InvoiceDate":"2022-01-01T13:34:44",
        "AWBNumber":"",
        "TrackingURL":"",
        "ShippingAddress":"",
        "ShippingCity":"",
        "ShippingState":"",
        "ShippingZip":"",
        "ShippingCountry":"",
        "CrmGroup":{
            " | My Group Name 1 | ":{
                "My Field Name 1.1":"field Value 1",
                "My Field Name 1.2":"field Value 2"
            },
            " | My Group Name 2 | ":{
                "My Field Name 2.1":"field Value 1",
                "My Field Name 2.2":"field Value 2"
            }
        },
        "PaymentType":"CreditCard",
        "FormId":13,
        "MemberId":47,
        "CaseId":89,
        "AmountPending":"0.0000",
        "AmountPaid":"10.0500",
        "PaymentIntentId":"XXXXXXXXXXXXXX",
        "PaymentIntentClientSecret":"XXXXXXXXXXXXXXXXXXXXXXXXXXXX",
        "FormatSetting":{
            "Name":"AU",
            "Culture":"en-AU",
            "DecimalsQuantity":2,
            "Currency":{
                "Code":"AUD",
                "Symbol":"$",
                "DigitalCode":"36",
                "Name":"Australian Dollar"
            }
        },
        "DomainCountry":{
            "Name":"AUSTRALIA",
            "Code":"AU"
        },
        "DestinationCountry":{
            "Name":"AUSTRALIA",
            "Code":"AU"
        },
        "ShippingOption":{
            "Id":"12252410371037462605",
            "ShippingOptionId":"7361027874612052004",
            "Name":"AustraliaPost - Parcel Post",
            "Price":8.1364,
            "TaxPercent":10,
            "TaxRate":0.1,
            "TaxPrice":0.81,
            "TotalPrice":8.95,
            "SubTotalPrice":8.14
        },
        "Discount":{
            "Id":null,
            "Code":null,
            "Type":null,
            "Amount":0
        },
        "GiftVoucher":{
            "Id":null,
            "Code":null,
            "Amount":0,
            "Balance":0
        },
        "SubTotalPrice":"1.0000",
        "TaxPercent":"10.0000",
        "TaxRate":"0.1000",
        "TaxPrice":"0.9100",
        "DiscountPrice":"0",
        "TotalPrice":"10.0500",
        "ShippingPrice":"8.1364",
        "ShippingTaxRate":"0.1000",
        "ShippingTaxPrice":"0.81",
        "ShippingSubTotalPrice":"8.14",
        "ShippingTotalPrice":"8.95",
        "GiftVoucherPrice":"0",
        "SubTotalTaxPrice":"0.1000",
        "DiscountedSubTotalTaxPrice":"0.1000",
        "GrandTotalPrice":"1.1000",
        "TotalPriceExcludingTax":"9.1400",
        "TotalPriceExcludingTaxAndGiftVoucherAmount":"9.1364",
        "TaxCode":"GST",
        "Items":[
            {
                "Id":"15049017874163171386",
                "EcommerceItemId":2139,
                "SmallImage":null,
                "Name":"product 1",
                "Type":"ModuleItem",
                "ModuleId":0,
                "SKUCode":"39207d4d-c9c0-4a9d-a435-f2c8f8778e68/Size/Large",
                "Quantity":1,
                "ProductFileLink":null,
                "URL":"/shop/product1",
                "TaxCode":"GST",
                "OnSalse":false,
                "Price":0,
                "TaxPercent":10,
                "UnitPrice":1,
                "TaxPrice":0.1,
                "UnitTotalPrice":1.1,
                "TotalPrice":1.1,
                "UnitTaxPrice":0.1,
                "TaxRate":0.1,
                "TotalPriceExcludingTax":1,
                "UnitRecommendedPrice":0,
                "UnitRecommendedTaxPrice":0,
                "UnitRecommendedTotalPrice":0,
                "AttributesString":"Size: Large; Color: Green,Yellow",
                "Attributes":{
                    "Size":[
                        "Large"
                    ],
                    "Color":[
                        "Green",
                        "Yellow"
                    ]
                }
            },
            {
                "Id":"435",
                "EcommerceItemId":3453,
                "SmallImage":null,
                "Name":"product 2",
                "Type":"ModuleItem",
                "ModuleId":0,
                "SKUCode":"39207d4d-c9c0-4a9d-a435-f2c8f8778e68/Size/Large",
                "Quantity":1,
                "ProductFileLink":null,
                "URL":"/shop/product1",
                "TaxCode":"GST",
                "OnSalse":false,
                "Price":0,
                "TaxPercent":10,
                "UnitPrice":1,
                "TaxPrice":0.1,
                "UnitTotalPrice":1.1,
                "TotalPrice":1.1,
                "UnitTaxPrice":0.1,
                "TaxRate":0.1,
                "TotalPriceExcludingTax":1,
                "UnitRecommendedPrice":0,
                "UnitRecommendedTaxPrice":0,
                "UnitRecommendedTotalPrice":0,
                "AttributesString":"Color: Red",
                "Attributes":{
                    "Color":[
                        "Red"
                    ]
                }
            }
        ]
    }
  • Gift Voucher
    {
        "Id":27729,
        "OrderId":27725,
        "Balance":15.04,
        "Country/Currency":"US/USD",
        "Country":"US",
        "Currency":"USD",
        "Name":"GV000001",
        "Amount":34.04,
        "Enabled":true,
        "Type":"ViaShop",
        "RecipientName":"test 1",
        "RecipientEmail":"receiver1@test.test",
        "RecipientMessage":"svssv"
    }
  • Workflow
    {
        "Id":27877,
        "Name":"Custom Workflow name",
        "FromEmail":"sender@test.test",
        "FromName":"sender@test.test",
        "Recipients":[
            "receiver1@test.test",
            "receiver2@test.test"
        ],
        "EmailSubject":"Workflow Email Subject",
        "EmailBody":"Workflow Email Body"
    }
  • Comment
    {
        "Id":27877,
        "ModuleItemId":6212,
        "ParentId":null,
        "ThreadId":27877,
        "Rating":60,
        "Comment":"test3",
        "DateAdded":"2021-12-01T04:13:48.620183",
        "AuthorId":24071,
        "AuthorFirstName":"Jhon",
        "AuthorLastName":"Doe",
        "AuthorEmail":"testauthor@test.test",
        "AuthorIsAdmin":false
    }

Public Triggers (should be performed by Treepl once appropriate action is made in the CMS):

  • New Module Item
    • Module [dropdown (multiple)]
      • list of module names
  • Update Module Item
    • Module [dropdown (multiple)]
      • list of module names
  • New CRM Member
  • Updated CRM Member
  • New CRM Form Submission
    • Form Name [dropdown (multiple)]
      • list of forms
  • Updated CRM Form Submission
    • Form Name [dropdown (multiple)]
      • list of forms
  • New CRM Event Booking
    • Form Name [dropdown (multiple)]
      • list of forms
  • Updated CRM Event Booking
    • Form Name [dropdown (multiple)]
      • list of forms
  • New Order
  • Updated Order
  • New Gift Voucher
  • Updated Gift Voucher
  • Triggered Workflow
    • Workflow [dropdown (multiple)]
  • New Comment
    • Module [dropdown (multiple)]
      • list of module names
  • Updated Comment
    • Module [dropdown (multiple)]
      • list of module names

4) Actions

Once module item created/updated

  • add rollback with new source "Zapier"

Dropdowns in zapier forms

  • Secure Zone
    • Value: SecureZoneId
    • Display Name: SecureZoneName
  • Country
    • Value: CountryCode
    • Display Name: CountryName
  • Form
    • Value: FormAlias
    • Display Name: FormName
  • Module
    • Value: ModuleId
    • Display Name: ModuleName
  • ModuleItem
    • Value: ModuleItemId
    • Display Name: ModuleItemName
  • ContactCRMType
    • Value: TypeName (Consumer/Wholesaler)
    • Display Name: TypeName (Consumer/Wholesaler)
  • CRMRecord property
    • Value: Email
    • Display Name: Email
  • Datasource property
    • Value: ModuleItemId
    • Display Name: ModuleItemName
  • Tags property
    • Value: TagName
    • Display Name: TagName
  • Categories property
    • Value: CategoryFullName
    • Display Name: CategoryFullName
  • Template property
    • Value: TemplateId
    • Display Name: TemplateName
  • Detail layout property
    • Value: DetailLayoutId
    • Display Name: DetailLayoutName
  • Country/Currency
    • Value: Country/Currency string
    • Display Name: Country/Currency string
  • Order Status
    • Value: OrderStatusName
    • Display Name: OrderStatusName
  • Parents
    • Value: -1 or ModuleItemId
    • Display Name: / or Module Item Url
  • Workflow
    • Value: WorkflowId
    • Display Name: WorkflowName
  • Recurring Type
    • Value: RecurringTypeName
    • Display Name: RecurringTypeName

Public Actions (allows to create or edit items in Treepl  performed by Zapier):

  • Create Module Item
  • Update Module Item
    • Module [dropdown REQUIRED]
      • list of module names
    • Item Name [string REQUIRED]
    • URL Slug [string]
    • Description [string (multiline)]
    • System Fields (dynamic list of property names)
      Add an info block with the  name of the group of fields (before listing of fields)
      • Parents [dropdown (or dropdown multiple)]
        • list of parent module items
      • Template [dropdown]
        • list of templates
      • Detail Layout [dropdown]
        • list of templates
      • Enabled [boolean]
      • Disable from site search [boolean]
      • Release Date [date]
      • Expiry Date [date]
      • Weighting [string]
      • Site Search Keywords [string]
      • Added by [string]
        • value is email
        • if not found in CRM - skip this value
      • Secure Zones [dropdown]
        • list of secure zones
        • adds an item to secure zones
      • Tags [dropdown]
        • list of module tags
      • Categories [dropdown]
        • flat list of categories (labels are path-like: "/category/subcategory")
      • Author [dropdown]
        • list of authors
    • Event Fields (dynamic list of property names).
      Show these fields only if the selected module has "Enable bookings == true"  in (Module details => advanced settings).
      Add an info block with the name of the group of fields (before listing of fields).
      • Hide When Full [boolean]
      • Allow Multiple Bookings Per Email [boolean]
      • Capacity [number]
      • Event Date Start [date]
      • Event Date End [date]
    • Product Fields (dynamic list of property names).
      Show these fields only if the selected module is Product.
      Add an info block with the  name of the group of fields (before listing of fields)
      • Small Image [string]
      • Large Image [string]
      • On Sale [boolean]
      • Is Gift Voucher [boolean]
      • Product Weight [number]
      • Product Width [number]
      • Product Height [number]
      • Product Depth [number]
      • Enable Drop Shipping [boolean]
      • Unit Type [string]
      • Minimum Units [number]
      • Maximum Units [number]
      • Recurring Type [dropdown]
        • list of recurring types
      • Is Shippable [boolean]
      • Is Downloadable [boolean]
      • Number Of Possible Downloads [number]
      • Supplier [string]
    • Custom fields (dynamic list of property names).
      Each Zapier field should have the same type as the module property.
      Add an info block with the  name of the group of fields (before listing of fields)
      • Custom Fields…
  • Create CRM Member
  • Update CRM Member
    • First Name
    • Last Name
    • Email [REQUIRED]
    • Address
    • City
    • State
    • Zip
    • Country [dropdown]
      • list of countries
    • Site
    • Phone
    • Status
    • Notes
    • Type [dropdown]
      • list of types
    • Billing Address
    • Billing City
    • Billing State
    • Billing Zip
    • Billing Country [dropdown]
      • list of countries
    • Advanced Fields (dynamic list of property names).
      Each Zapier field should have the same type as advanced CRM group property.
      For each advanced CRM group add an info block with the Advanced CRM Group name - https://prnt.sc/kdChsqRILvXT
      • Advanced Fields…
  • Create CRM Form Submission
  • Update CRM Form Submission
    • Id [REQUIRED - for update form only]
    • Email [REQUIRED - for update form only]
    • Form Name [dropdown REQUIRED - for create form only]
      • list of forms
    • Form Fields (dynamic list of property names).
      List of all system and custom form fields.
      Add an info block with the name of the group of fields (before listing of fields)
    • Advanced Fields (dynamic list of property names).
      Each Zapier field should have the same type as advanced CRM group property.
      For each advanced CRM group add an info block with the Advanced CRM Group name - https://prnt.sc/kdChsqRILvXT
      • Advanced Fields…
  • Create CRM Event Booking
  • Update CRM Event Booking
    • Id [REQUIRED - for update form only]
    • Email [REQUIRED - for update form only]
    • Form Name [dropdown REQUIRED - for create form only]
      • list of forms
    • Module [dropdown REQUIRED - for create form only]
      • list of modules that have Enable Booking = true
    • Module Item [dropdown REQUIRED - for create form only]
      • list of forms
    • Allocation [number (default = 1)]
    • Form Fields (dynamic list of property names).
      List of all system and custom form fields.
      Add an info block with the name of the group of fields (before listing of fields)
    • Advanced Fields (dynamic list of property names).
      Each Zapier field should have the same type as advanced CRM group property.
      For each advanced CRM group add an info block with the Advanced CRM Group name - https://prnt.sc/kdChsqRILvXT
      • Advanced Fields…
  • Update Order Details
    Base information update only
    • Id [REQUIRED - for update form only]
    • Order Details (group of fields listing all system order fields)
      • Order Name [REQUIRED]
      • Status [dropdown]
        • list of statuses
      • Invoice Number
      • Invoice Date
      • AWB Number
      • Tracking URL
      • Shipping Address
      • Shipping City
      • Shipping State
      • Shipping Zip
      • Shipping Country [dropdown]
        • list of countries
      • Order Details…
        Add an info block with the  name of the group of fields (before listing of fields)
    • Advanced Fields (dynamic list of property names).
      Each Zapier field should have the same type as advanced CRM group property.
      For each advanced CRM group add an info block with the Advanced CRM Group name - https://prnt.sc/kdChsqRILvXT
      • Advanced Fields…
  • Create Gift Voucher
  • Update Gift Voucher
    • Id [REQUIRED - for update form only]
    • Name [string]
    • Recipient Name [string]
    • Recipient Email [string (email) REQUIRED]
    • Recipient Message [string (multiline)]
    • Country/Currency [dropdown]
      • list of Country/Currency pairs available for the site
    • Amount [number]
    • Enabled [boolean]
  • Create Comment
  • Update Comment
    • Id [REQUIRED - for update form only]
    • Module Item Id
    • Thread Id
    • Parent Id
    • First Name
    • Last Name
    • Email [REQUIRED]
    • Rating
    • Comment

5) Searches

Public Searches Form:

  • Find Module Item
    • Id
    • Module [dropdown]
      • list of module names
    • Item Name [string]
    • URL Slug [string]
    • Description [string (multiline)]
    • System Fields (dynamic list of property names).
      Add an info block with the name of the group of fields (before listing of fields).
      • Parents [dropdown (or dropdown multiple)]
        • list of parent module items
      • Release Date [date]
      • Expiry Date [date]
      • Weighting [string]
      • Added by [string]
        • value is email
        • if not found in CRM - skip this value
      • Tags [dropdown]
        • list of module tags
      • Categories [dropdown]
        • flat list of categories (labels are path-like: "/category/subcategory")
      • Author [dropdown]
        • list of authors
    • Event Fields (dynamic list of property names).
      Show these fields only if selected module has Enable bookings == true  in (Module details => advanced settings).
      Add an info block with the  name of the group of fields (before listing of fields)
      • Capacity [number]
      • Event Date Start [date]
      • Event Date End [date]
    • Product Fields (dynamic list of property names).
      Show these fields only if the selected module is Product.
      Add an info block with the  name of the group of fields (before listing of fields)
      • Small Image [string]
      • Large Image [string]
      • On Sale [boolean]
      • Is Gift Voucher [boolean]
      • Product Weight [number]
      • Product Width [number]
      • Product Height [number]
      • Product Depth [number]
      • Enable Drop Shipping [boolean]
      • Unit Type [string]
      • Minimum Units [number]
      • Maximum Units [number]
      • Recurring Type [dropdown]
        • list of recurring types
      • Is Shippable [boolean]
      • Is Downloadable [boolean]
      • Number Of Possible Downloads [number]
      • Supplier [string]
    • Custom fields (dynamic list of property names).
      Each Zapier field should have the same type as the module property.
      Add an info block with the  name of the group of fields (before listing of fields)
      • Custom Fields…
  • Find CRM Member
    • Id
    • First name
    • Last Name
    • Email
    • Address
    • City
    • State
    • Zip
    • Country [dropdown]
      • list of countries
    • Site
    • Phone
    • Status
    • Notes
    • Type [dropdown]
      • list of types
    • Billing Address
    • Billing City
    • Billing State
    • Billing Zip
    • Billing Country [dropdown]
      • list of countries
  • Find CRM Form Submission
    • Id
    • Form Name [dropdown]
      • list of forms
    • Email
  • Find CRM Event Booking
    • Id
    • Form Name [dropdown]
      • list of forms
    • Email
  • Find Order
    • Id
    • Email
    • Order Name
    • Status [dropdown]
      • list of statuses
    • Invoice Number
    • Invoice Date
    • AWB Number
    • Tracking URL
    • Shipping Address
    • Shipping City
    • Shipping State
    • Shipping Zip
    • Shipping Country [dropdown]
      • list of countries
  • Find Gift Voucher
    • Id
    • Name [string]
    • Recipient Name
    • Recipient Email
    • Recipient Message [string (multiline)]
    • Country/Currency [dropdown]
      • list of Country/Currency pairs available for the site
    • Amount [number]
  • Find Comment
    • Id
    • Module Item Id
    • Email
    • Rating
    • Comment
  • Find Workflow
    • Id
    • Name

6) Restrictions

Do not allow to process triggers, actions and searches if zapier extension is disabled for the site

BUG FIXES

v 6.6 Release date: 11 May, 2022

Event Anniversary Emails

1) Create a new Settings section on a module settings page

Called “Follow Up Emails” which includes the option:

  • Enable Follow-Up Emails (checkbox) - preset to ‘true’ for Events module

Show section only if “Module” > “Advanced Settings” > “Enable bookings” is true.

2) Create a new tab "DEFAULT FOLLOW-UP EMAILS" on a module edit page

Display only if the module has ‘Follow Up Emails’ -> ‘Enable Follow-Up Emails’ setting set to ‘true’ AND if ‘Module’ -> ‘Advanced Settings’ -> ‘Enable bookings’ is true

Content:

  • List of default follow-up emails
  • ability to add new default follow-up email
  • ability to edit and delete default follow up email

DESIGN:
https://projects.invisionapp.com/share/JA10JVKP2K78#/screens/447175909

Add ‘Date Field’ column after ‘Delivery Type’

  • Show field display name if field exists
  • Show saved field alias if field doesn't exist any more (but alias is saved for a follow-up)

3) Create a new tab "CUSTOM FOLLOW-UP EMAILS" on a module item edit page

  • Display only if the module has ‘Follow Up Emails’ -> ‘Enable Follow-Up Emails’ setting set to ‘true AND if ‘Module’ -> ‘Advanced Settings’ -> ‘Enable bookings’ is true.

Content

  • “Send only custom follow-up emails” (checkbox)
    • When enabled, allow to add/edit/delete custom follow-up emails
      • List of custom follow-up emails
      • ability to add new custom follow-up email
      • ability to edit and delete custom follow up email

DESIGN:
https://projects.invisionapp.com/share/JA10JVKP2K78#/screens/447175909

  • Set title Delivery Time instead Delivery Date
  • Add Date Field column after Delivery Type
    • Show field display name if field exists
    • Show saved field alias if field doesn't exist any more (but alias is saved for a follow-up)

4) Change “Email Notification” -> “Workflow emails” page

Rename default admin menu item name from “Workflow Emails” to “Emails” and EntityAlias from ‘WorkflowEmails’ to ‘Emails’

In custom admin menus, find menu item with alias ‘WorkflowEmails’ and rename to ‘Emails’

Add tabs:

  • Workflow Emails
    • Place existing listing and “add workflow emails” logic here
  • Follow-Up Emails
    • Add listing and add/edit/delete Follow-up emails logic here
    • Show tab only if site plan is BUSINESS or higher

Set following restrictions based on site plan

  • Show ‘Email Notification’ -> ‘Emails’ page starting from BUSINESS plan
    • Show ‘Workflow Emails’ tab starting from PRO plan
    • Show ‘Follow-Up Emails’ tab starting from BUSINESS plan

5) Create/edit follow up email logic

  • Select one of the already created follow-up emails or create a new one (like it works on workflows - https://prnt.sc/TyNsogEjZwIa)
  • Choose the trigger date field
    • Release Date
    • Expiry Date
    • Event Date Start
      • show if the module has ‘Advanced Settings’ -> ‘Enable Booking’ = true
    • Event Date End
      • show if the module has ‘Advanced Settings’ -> ‘Enable Booking’ = true
    • all custom properties with type datetime
  • Choose a time shift for the chosen trigger date field: https://prnt.sc/nKOv35KSrxTw
    • Delivery Time (numeric)
    • Delivery Type (dropdown)
      • Days After
      • Days Before
      • Hours After
      • Hours Before
    • Date Field (dropdown) - list of module item date fields
      • system fields:
        • Release Date
        • Expiration Date
        • Event Date Start
        • Event Date End
      • custom fields (display name is the name of the custom field)
    • on edit
      • do not allow to save follow-up if Date Field is empty (only set field to be empty if the saved alias belongs to the date field that doesn't exist anymore)

6) Follow-Up Email sending logic

If the module has’Follow Up Emails’ -> ‘Enable Follow-Up Emails’ setting set to ‘true’ AND ‘Module’ -> ‘Advanced Settings’ -> ‘Enable bookings’ is true

  • Schedule sending follow-up emails for each module item (for each subscriber to this module item) based on the selected date field:
    • For module items that have ‘Send only custom follow-up emails’ = true
      • send only custom follow-up emails
        • if there are no custom follow-up emails in the list - no email will be sent for this module item
    • For module items that have ‘Send only custom follow-up emails’ = false
      • send only default follow-up emails

7) Email liquid

‘this’ object should contain the following properties:

  • item
    • object that contains same fields as item from component type module (including event fields)
  • member
    • module item subscriber

8) Site Plan Restrictions

Allow view and use of ‘Follow Up Emails’ on module settings if site plan is PRO or higher

Hide DEFAULT FOLLOW-UP EMAILS on module view and CUSTOM FOLLOW-UP EMAILS tab on module item view if site plan is lower than BUSINESS

If site's plan is ESSENTIAL

  • disallow sending followup emails
  • if plan will be restored to BUSINESS or higher all follow-up emails that wasn't sent while site plan was ESSENTIAL should NOT be sent after plan upgrade

9) Admin User Role permissions

Ability to enable/disable Default and custom followup emails should be managed by ‘Can Edit Basic Module Settings’ module's restriction

Add following admin user role permissions:

  • Emails
    • Can View
      • if disabled; hide 'Email Notifications' -> 'Emails' menu item and do not allow to open 'Email Notifications' -> 'Emails' page
  • Follow-ups
    • Can View
      • if disabled; hide DEFAULT FOLLOW-UP EMAILS on module view and CUSTOM FOLLOW-UP EMAILS tab on module item view
    • Can Add
    • Can Edit
    • Can Delete
      • these 3 restriction above should allow to view ‘add’, ‘edit’ and ‘delete’ buttons on DEFAULT and CUSTOM follow-ups pages
  • Follow-up Emails
    • Can View
      • allows to see ‘Follow-up Emails’ tab on mail ‘Notifications’ -> ‘Emails’ page
    • Can Add
      • allows to show ‘add’ button on 'Email Notifications' -> 'Emails' page (tab ‘Follow-up Emails’)
      • allows to show ‘Add new follow-up email’ button on create follow-up form
    • Can Edit
    • Can Delete
      • these 2 restriction above should allow to view ‘edit’ and ‘delete’ buttons on 'Email Notifications' -> 'Emails' page (tab ‘Follow-up Emails’)

On create new admin user role

  • set all permissions above to true by default

For all existed admin user roles

  • All permissions above should be false
  • On update from v6.5 to v6.6
  • Add to all existing admin user roles following permissions with preset value
    • ‘Emails’ -> ‘Can View’ with value TRUE if
      • current user role permission has ‘Workflow Emails’ -> ‘Can View’ == true

10) Duplicating module item logic

Duplicate ‘Send only custom follow-up emails’ checkbox when duplicating the module item

Duplicate ‘Custom follow-ups’  when duplicating the module item

11) Duplicating module logic

Duplicate ‘Enable Default Follow-Up Emails’ AND ‘Enable Custom Follow-Up Emails’ settings

Duplicate ‘Default follow-ups’  when duplicating the module

12) Import/Export of module items

Add ‘Send only custom follow-up emails’ checkbox to import/export process

‘Follow-ups’ should NOT be added to module item import/export process

13)  Import/Export of module logic

Add ‘Enable Default Follow-Up Emails’ AND ‘Enable Custom Follow-Up Emails’ checkboxes to module import/export process

Do NOT add ‘Default follow-ups’  to export file

v 6.4 Release date: 07 Feb, 2022

Export Event Bookings with custom fields

  1. Create form SingleItem with custom fields and Adv CRM group
  2. After go to Events bookings and make export exactly from this new form
  3. In file not display custom fields
{% endraw %}
v 6.1.4 - 6.1.8 Release date: 06 Sep, 2021
6.1.4 Liquid CRM Filtration by customer ID for the cases, orders, bookings lists and custom CRM group output.
6.1.5

Custom module

If "Enable bookings" checkbox is enabled https://prnt.sc/1ibjad4, the items aren't displayed on the front end.
6.1.5

Custom module

If "Enable bookings" checkbox is enabled https://prnt.sc/1ibjad4 and {{this}} is rendered on the item detail, the information on "hide when full", etc. related to the event will be missing.
6.1.5 Form / form submission The form submissions had the incorrect time. The same issue was with event bookings.
6.1.7 Event booking

Go to Event Booking -> Edit -> Save -> an error is being displayed: https://prnt.sc/1mo6w3z

6.1.7 Event booking BUG: The event bookings were displayed without an event name after the event was purchased and then deleted.
6.1.8 Time in event booking/one time payment form The incorrect payment time was displayed in the Orders -> "Payments" tab after purchasing the event or submitting a payment form (one-time payment).
{% endraw %}
v 6.1.0-3 Release date: 21 Jul, 2021
6.1.2.8 Custom modules Custom modules items preview doesn't work (404) if "еnable bookings" has been selected: http://prntscr.com/190pi2x.
v 5.9.2 Release date: 28 Jan, 2021

BACKLOG

Wording change on event bookings

Rename following wording in the CMS:

  • Module -> Settings -> Advanced Settings
  • Event -> Details:
    • “SUBSCRIPTIONS” tab renamed to ”BOOKINGS” (http://prntscr.com/vxmw13)
      • Table column ”Subscribed Date” to ”Booking Date”
      • Excel export table column (on import - react on both new and old name)
        - “Subscribed Date” to ”Booking Date”
        - “Allow Multiple Subscription Per Email” to ”Allow Multiple Bookings Per Email”
  • Toolbox -> Events
    • Toolbox item name ”Event Subscription Form” to ”Event Booking Form”
    • Field Name ”Event Subscription Form” to ”Event Booking Form” (http://prntscr.com/vxn1ru)
  • Form
  • CRM -> Event bookings
v 5.9 Release date: 16 Dec, 2020

Feedback Task

CRM -> Bookings: Export to Excel to be filtered by form name?

Source

bookings-export-to-excel-to-be-filtered-by-form-name/1166">https://forum.treepl.co/...

Improve Bookings export (https://prnt.sc/vv97ic)

  • Improve ”Form Name” selector (multiselect)
    • all forms (default)
    • manually subscribed
    • form list...
  • Add ”Event” selector (multiselect)
    • all events (default)
    • event list...

Update exporting logic so it will retrieve bookings based on selected forms and events

v 5.4 Release date: 13 Jul, 2020

BACKLOG

Custom Reports:

Builder

DESIGN http://prntscr.com/thh497

1) Add page and menu item: ‘Reports’ > ‘Custom Reports’

Provide ability to:

  • Add new report
  • list reports (with pagination 20 per page)
  • Show only reports marked as public or that were created by the current logged in Admin User


2) All functionality with Custom Reports is available starting from Pro plan.

3) Reports Builder:

SETTINGS

Save the report by name and set as public option that allows you to share the report with other admin users. If Make public set to false - you are the only one who will see this report.

TYPE

The type determines what fields should be collected for Fields and Filters steps and what entities should be collected for the final report.

- Contacts (default)

- Contacts and Cases

- Contacts and Orders

- Contacts and Event Bookings

FORM FILTER

Select a form (from all available web forms) to filter only those cases,orders or event bookings that belong to this form.

Show section only if type is one of:

- Contacts and Cases

- Contacts and Orders

- Contacts and Event Bookings

---------

FIELDS

Select Fields to be seen on report as column headers

  • Fields For Cases:
    • Case Id
    • Form name
    • Date Submission
  • Fields For Orders
    • Order Id
    • Form name
    • Date Submission
    • Currency
    • Country
    • Total Cost
    • Amount Paid
    • Pending Collection
    • Shipping Address
    • Shipping City
    • Shipping State
    • Shipping Zip Code
    • Shipping Country
    • Invoice Number
    • Invoice Date
    • Status
  • Fields For Booking Subscriptions
    • Booking Subscription Id
    • Form name
    • Booking Date
    • Allocation
    • Price
    • Event Id
    • Event Name
  • Contact fields
    • Contact
    • First name
    • Last Name
    • E-mail
    • Address
    • City
    • State
    • Zip Code
    • Country
    • Site
    • Phone
    • Status
    • Notes
    • Type
  • Form fields (show only if certain form was included for report)
    • <list of all selected form's custom fields>

---------

FILTERS

  • Field (to filter by)
    • <all fields available from the report type>
  • Condition options (depending on Field value type)
    • Equals
    • NotEqualTo
    • LessThan
    • GreaterThan
    • LessOrEqual
    • GreaterOrEqual
    • Contains
    • DoesNotContain
    • StartsWith
  • Value (depending on Field type)
    • if the field is general string or number type - show text field
    • if it's a dropdown or radiolist - show dropdown

Ability to add additional filtering rules

---------

RESULTS

Generate sortable and paginated results table.

Ability to export to Excel file.

BACKLOG

Advanced CRM:

Liquid component tag for custom CRM fields

Add new component tag component type:"CRMContactCustomGroup":

Pattern:

{% component type:"CRMContactCustomGroup", groupAlias:"[[groupAlias]]", fieldAlias:"[[fieldAlias]]", entityType:"[[entityType]]", entityId:"[[contactId]]", collectionVariable:"", layout:"" %}

  • groupAlias (required) - alias of the custom CRM group.
    • All group fields with their values should be set to the {{this.fields}} array of objects if fieldAlias is not set. Otherwise {{this.fields}} should contain only one element, being the object for the specified field set via fieldAlias.
  • entityType (not required) - determines the CRM entity type to retrieve custom group for. Values can be:
    • form_submission
    • event_booking
    • order
    • contact (default, if no type set for the component)
  • entityId (not required) - determines the CRM entity to retrieve custom group for
    • if entityType is contact
      • If field is empty - try use current logged in CRM contact id. - If no logged in users found return empty context item
      • If CRM contact has isDataUsingAllowed not equal to true than return empty context item
    • else
      • If field is empty - return empty context item
  • fieldAlias (not required) - alias of the CRM group field. Should be used to find a particular group field value for the CRM contact (determined by entityId and the group determined by groupAlias).
  • collectionVariable (not required) - works the same way as other modules.
  • layout (not required) - path to FTP file that will contain layout content for the data.
    • If specified empty string - do not render anything.
    • If not specified at all - render default virtual layout.

Item context:

{
"Alias": "",
"Fields" :
[
{
"Name" : "",
"Alias": "",
"Value" : ""
},
...
]
}

Default virtual layout:

{{this.fields[0].value}}