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. Create and set the list of fields and check-boxes (including their visual names) in Client Fields Matrix.

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 / Chat bot 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. WAF check if this input (json or form) was already posted in the last hour. IF true, then error code 30 will be replied.
  12. Duplicity Check

    1. Searching for existing clients according to: Email Address, Phone Number & ID Number.
      In case that the index module does not answer, the whole process will stop with error code 24.
    2. In a RARE Case that client record was found with the Same ID but with different Email or Phone number,
      The whole process will stop, the user will be transferred to the
      'login'
      page with a popup message:
      'You have already registered before with different details. Please contact customer service to correct the registration.'
    3. 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.
    4. IF the status is > 3 (4-6) then All data being pushed into [hyp_Sale Opportunity Web Input] table.
    In cases B,C & D, a New Sale Opportunity will be created to help you follow up this client.

  13. 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 check-box "Accept Commercial Info" OR "Accept Commercial Info to Cellphone" 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 check-box "Accept Commercial Info" OR "Accept Commercial Info to Email" 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).
      • [API Password]
        is generated.
        IF the Matrix includes the field
        [Password]
        under
        [hyp_Clients]
        table, then it will be copied here to
        [Portal Password]
        .
      • IF check-box "Agree to Terms and Conditions" posted as true/1; Then
        [Agree to Terms check-box]
        = Today.

    This is it, Now saving to Database. Next Step is #15 in this list.
  14. 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 and #16 in this list.
  15. 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).
  16. 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).
  17. Email/Phone Verification

    According to
    [Website Account Verification]
    field in hyper "...Web API" settings, the portal will send a verification Link.
    Approval of verification will register in "hyp_Clients Website Ext. Record" table, in:
    [EMail Verification Status]
    and
    [Phone Verification Status]
    fields.
  18. Seamless Login when client Already Exists

    1. According to the 'Website Login System' field (server side settings), for login without a password ('ID + Email + OTP'), the user will be transferred to the
      'Login_2FA'
      page.
    2. If the password entered in the registration form is different from the previous one (already stored in the account),
      the user will be transferred to the
      'PasswordRecovery'
      page, with a popup message:
      'You have already registered before with different details. Please use the password recovery tool to re-enter your account.'
    3. If reaching this point, the user will be transferred to the
      'Login_2FA'
      page, OR to
      'Portal'
      .

Thank you for reading.