Registration (sign-up) page

The registration page of the web-app is intended to receive New Clients into the CRM module.
This page is fully configurable and can be used as a landing page. The HTML is flex (responsive) for any mobile device / browser view port size.
Page url is: Domain/RegisterClient. There is a sub version for "Demo Account" when it is relevant, as Domain/RegisterDemo.

Web Page Structure

Body id Page Prefix Form Post URL Fields List
CliRegPage1 Register_Client_Page1 RegisterClient Use in Registration Page #1
Use this id for custom css and js Edit this key in Website Content
You can add title and logo to the window...
This is the page url and also the Form Post target. Edit list of fields and check-boxes in Client Fields Matrix.
You can edit the checkbox's labels and add links to Contract / Privacy Protection Policy, using the Override Captions tool.

Before the form ends, a Google Captcha will be placed. In case that you don't have credentials for google, then sye simple captcha will be placed (like in the screen capture above).

Pass Values when calling this page

On the first call to this page (before the session cookie is established), you can add fields values that will be copied to the Html Form.
Hidden fields from the Matrix can be posted only at this stage. After the session is established, these fields are blocked.
You can use HTTP GET or POST, it will work just the same.
The common use of this feature is to pass the AD tech / Chatbot data for the CRM Royalties reports.

* Excess Input Fields (not included in the input fields list) are pushed into hyp_Sale Opportunity Web Input table.

Submit Button

The following actions taking place when posting data to this form. The process will stop on a failure, with a message to the end user.

  1. Check that String (fields) values are in the Acceptable Languages (like the whole CRM configuration).
  2. Check that all mandatory fields were filled.
  3. If an Email field is included, then Check that address is valid. Including DNS MX test for private domains.
  4. If a Phone Number field is included, then Check that contain only digits and has a length of 9-13 chars.
  5. If a Birthday field is included, then Check that client's age is above the setting
    [Website Accept Client Age above # years]
    .
  6. If a Password field is included, then it must be at least 8 characters long and contain 2 digits and 3 letters.
    When using ONLY English characters, it is mandatory to combine uppercase and lowercase letters.
  7. If an ID Number field is included, then Run a logical test on it when possible (Luhn Algorithm for example).
    The test depends on the client field
    [Country Issuing ID]
    if available, otherwise it checks the
    [Country]
    field.
    When both of the fields are empty, then the website assumes that the client is from the same country where the organization / branch operates.
  8. If a Confirm Password field is included, then Check that it's value is identical to the Password field.
  9. If a Confirm Email field is included, then Check that it's the same address as the Email field (test is not case sensitive).
  10. Check the Captcha Test (simple or google.com/recaptcha). IF failed then reply the html with the fields values and let the user try again.
  11. Duplicity Check

    Searching for existing clients according to: Email Address, Phone Number & ID Number.
    When duplicity is found, a second check is done for the client's "Handling Status".
    • IF the status is < 4 (0-3) then the first record found will be MERGED with the new registration data.
      Any field that cannot merge, will be pushed into [hyp_Sale Opportunity Web Input] table. No data lost.
    • IF the status is > 3 (4-6) then All data being pushed into [hyp_Sale Opportunity Web Input] table.
    In both cases a new Sale Opportunity will be created; As described next on this page.

  12. Create a New Client Record

    1. Complete some hyp_Clients table fields:
      [Docs & Forms Language]
      to current session Language.
      [Use Currency by Default]
      to default Bookkeeping Currency.
      Set the field
      [Lead Status]
      to value 1 (Newly Created), and
      [Last Lead Input]
      to NOW UTC.
    2. Decide which Agency to assign this client, Priorities are:
      • IF one of the fields
        [Default Sales Agent]
        or
        [Default Relationship Manager]
        were posted, then assign to that Agent's Agency !
      • IF
        [Agency]
        was posted (not null), then assign to it.
      • Default field value, if was written in the Matrix.
      • Use default agency by this API instance (every Domain is assigned to a 'Hyper User' or 'Server side Agency').
    3. Set the field
      [Created on]
      to Current local time, according to the Agency's timezone.
    4. IF checkbox "AcceptCommercialInfoCheckbox" OR "AcceptCommercialInfotoCellphone" posted as true/1;
      Then set
      [Accept Commercial Info to Cell phone]
      to Current local time, and
      [Question to use cell phone]
      to 1 (Website Form).
    5. IF checkbox "AcceptCommercialInfoCheckbox" OR "AcceptCommercialInfotoEmail" posted as true/1;
      Then set
      [Accept Commercial Info to Email]
      to Current local time, and
      [Question to use Email]
      to 1 (Website Form).
    6. Setup hyp_Clients Website Ext. Record fields:
      • [Last Registration Step]
        and
        [Registration Complete Until Step]
        = 1 (page 1).
      • [First Reg. Page Date]
        = Today.  
        [Account Status]
        is set to 1 (Pending Approval).
      • [Portal Password]
        and
        [API Password]
        are generated.
        IF the Matrix includes the field "Password" under "hyp_Clients" table, then it will be copied here.
      • IF checkbox "AgreetoTermsCheckbox" posted as true/1; Then
        [Agree to Terms Checkbox]
        = Today.

    This is it, Now saving to Database. Next Step is #15 in this list.
  13. Merging data with Client LEAD   (status 0-3)

    1. Copy each new posted field to original tables
      [hyp_Clients], [hyp_Clients Record Extension]
      , when the Target field is EMPTY !
      Otherwise, push that posted field into [hyp_Sale Opportunity Web Input] table.
    2. Work on hyp_Clients table fields:
      • Change
        [Docs & Forms Language]
        to current session Language.
      • IF empty then set
        [Use Currency by Default]
        to default Bookkeeping Currency.
      • IF
        [Handling Status] = 3
        (not interested) then change it to 0 (new).
      • Set the field
        [Lead Status]
        to value 2 (HOT Lead) or 3 (Interested Again) according to current client status.
    3. Complete empty fields in hyp_Clients Website Ext. Record table, To meet the standards from Section 12.F.
    This is it, Now saving to Database. Next Step is #15 in this list.
  14. Handling data when Client is Confirmed / Active   (status 4-6)

    Push all posted fields into [hyp_Sale Opportunity Web Input] table.
    Set the field
    [hyp_Clients.Lead Status]
    to value 3 (Interested Again).
  15. A new Sale Opportunity is created at this point. With link to Client Number (new / exist) and Empty fields completion from the Client record (like phone/email/sales agent etc).
    This step is running anyway - even if the previous step (client create / update) has failed (Database error).