Collect! Credit and Collection Software™

  Page Table of Contents Related 'How To' Tutorials

How To Install Setup The Consumer Portal

The Consumer Portal is web-based interface that allows Debtors (Consumers) access to their account. The configuration is divided into Client-Side Configuration, which which controls some UI elements, and Server-Side Configuration, which controls some functionality within the application.

This module is dependent on the Collect! REST API, which must be installed first. Please refer to the Help topics How to Install the REST API and How to Install and Setup Apache.

Apache Configuration

Apache is used to proxy the domain requests. This allows you to communicate on HTTPS for all requests, without having to open extra ports to the internet.

Please refer to the Help document How to Install and Setup Apache linked above for the instructions to install Apache. This section will go over the vhost configuration for the Consumer Portal.

C:\wamp64\bin\Apache\Apache2.4.#\conf\httpd.conf

Add defines for the domains.

Define DOMAIN_NAME_CONSUMER consumer.yourdomain.com

C:\wamp64\bin\Apache\Apache2.4.#\conf\extras\httpd-vhosts.conf

Copy and paste the below into the bottom of the file.

<VirtualHost *:80> ServerName ${DOMAIN_NAME_CONSUMER} ServerAlias ${DOMAIN_NAME_CONSUMER} DocumentRoot "${INSTALL_DIR}/www" <Directory "${INSTALL_DIR}/www/"> Options +Indexes +Includes +FollowSymLinks +MultiViews AllowOverride All Require local </Directory> <Directory "${INSTALL_DIR}/www/.well-known/"> Require all granted </Directory> RewriteEngine on RewriteCond %{REQUEST_URI} '!/.well-known/acme-challenge/' RewriteCond %{HTTP:Upgrade} !=websocket [NC] RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=301] </VirtualHost>

C:\wamp64\bin\Apache\Apache2.4.#\conf\extras\httpd-ssl.conf

Copy and paste the below into the bottom of the file.

<VirtualHost _default_:443> # General setup for the virtual host DocumentRoot "${INSTALL_DIR}/www" ServerName ${DOMAIN_NAME_CONSUMER}:443 ServerAdmin ${ADMIN_EMAIL} ErrorLog "${SRVROOT}/logs/error.log" TransferLog "${SRVROOT}/logs/access.log" Header set X-Frame-Options sameorigin Header set X-Content-Type-Options "nosniff" Header set X-Permitted-Cross-Domain-Policies "none" Header set Referrer-Policy "no-referrer" Header set Cross-Origin-Resource-Policy "same-origin" Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" # SSL Engine Switch: # Enable/Disable SSL for this virtual host. SSLEngine on # Server Certificate: SSLCertificateFile "${SSL_FILE_PATH}/${DOMAIN_NAME_CONSUMER}-crt.pem" # Server Private Key: SSLCertificateKeyFile "${SSL_FILE_PATH}/${DOMAIN_NAME_CONSUMER}-key.pem" # Server Certificate Chain: SSLCertificateChainFile "${SSL_FILE_PATH}/${DOMAIN_NAME_CONSUMER}-chain.pem" <FilesMatch "\.(cgi|shtml|phtml|php)$"> SSLOptions +StdEnvVars </FilesMatch> <Directory "${SRVROOT}/cgi-bin"> SSLOptions +StdEnvVars </Directory> # SSL Protocol Adjustments: BrowserMatch "MSIE [2-5]" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 # Per-Server Logging: CustomLog "${SRVROOT}/logs/ssl_request.log" \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" ProxyPreserveHost On ProxyPass / http://localhost:3005/ ProxyPassReverse / http://localhost:3005/ </VirtualHost>

Final Steps

  1. If Apache is already configured and running, then you need to comment out "Include conf/extra/httpd-ssl.conf" line in the httpd.conf file.
  2. Restart the Apache service.
  3. Setup SSL Certificates.
  4. Uncomment "Include conf/extra/httpd-ssl.conf" in the httpd.conf file.
  5. Restart Apache.

Top of page.

Client-Side Configuration

The Client-Side elements affect the User Interface. You will need to contact us to obtain the latest installation package.

  1. Unpack the installation package into the {Collect}\bin\companion\ folder. This should result in {Collect}\bin\companion\consumer-portal.
  2. Navigate to the Consumer Portal folder in Powershell Admin mode.
  3. cd {Collect}\bin\companion\consumer-portal

  4. Run the Setup Script.
  5. ./setup.ps1

  6. Navigate to the CLI folder in Powershell Admin mode.
  7. cd {Collect}\bin\companion\cli

  8. Update and Seed the database.
  9. node .\main.js database migrate:latest node .\main.js database seed

  10. Key in Y to the warning and push Enter.
  11. Scroll up or down with the arrow keys on the keyboard until you find 07_default_consumer_settings.
  12. Use the spacebar to select the 07_default_consumer_settings option.
  13. Warning Note WARNING: Make sure that no other option is selected. Selecting the wrong option can cause damage.

  14. Push Enter on the keyboard.
  15. Open the {Collect}\bin\companion\consumer-portal\runtime-config.js file with a text editor.
  16. Update the applicable values. See table below for more information.

Top of page.

Runtime Configuration File

This file is in JSON. If you are not familiar with JSON, stop and contact us for changes.

This is the hierarchy of the file:

  • base_url
  • company
    • images
    • support
  • screens
    • core
    • login
    • register
    • forgot_password
    • payment
    • terms_and_conditions
    • authorization_form
  • theme
Key Description
base_url This value must be updated to point at the URL for the Collect! API Server.
Example: https://api.yourdomain.com
company -> name Enter your Company's Name.
company -> images -> favicon -> base64
company -> images -> logo -> base64
Both favicon and logo are optional. If nothing is supplied, the default Collect! images are used. To generate base64 strings for these images:

  1. Optimize the image using a service or application. Example: https://imageoptim.com/online
  2. Convert the optimized image to Base64. Example: https://www.base64-image.de/
  3. Replace "undefined" with the applicable value for the favicon and/or logo.
company -> support -> email
company -> support -> phone
Both email and phone are optional, but may be provided for display in the Collect! Consumer Portal.
screens -> core -> menu -> logo
screens -> login -> logo
screens -> register -> logo
These options may not be visible. If that is the case, it will use the default height sizing. If you need to adjust the height, you can create the applicable JSON code and add a tag for width or height. JSON is comma separated. The below assumes that you add the code as the first parameters for the Screens section.

core: {   menu: {     logo: {       width: '100px',     },   }, }, login: {   logo: {     height: '60px',   }, }, register: {   logo: {     height: '60px',   }, },

screens -> register -> labels -> ssn
screens -> register -> labels -> license
screens -> register -> labels -> zip
screens -> register -> labels -> dob
screens -> register -> labels -> file
These values are used to override the default placeholder labels of the 5 corresponding registration fields.
screens -> login -> title Update this value to set the title on the login page shown above the file/password form. By default the title on the login page reads "Consumer Portal Login."
screens -> login -> disclaimer Update this value to display a disclaimer below the login form on the login page. This value supports HTML code.
screens -> login -> labels -> file Update this value to change the placeholder text of the file# field on the login page.
screens -> forgot_password -> labels -> description
screens -> forgot_password -> labels -> file
These values are used to override the file# field placeholder text and the form description on the forgotten password page.
screens -> payment -> urls Enter the URL for your payment page. Two formats are supported iFrame and Buttons. If your payment processor supports iFrames, and you only have 1 payment page, then update the URL.

If you have multiple payment pages, or your payment provider doesn't support iFrames, then you need to use the Button method.

iFrame:
payment: { urls: [ { url: 'https://paymentprovider.com/form/abc123?fn=${de_number}&am=${de_owing}', }, ], },

Single Button:
payment: { urls: [ { label: 'Pay Now', url: 'https://paymentprovider.com/form/abc123?fn=${de_number}&am=${de_owing}', }, ], },

Multiple Buttons:
payment: { urls: [ { label: 'Pay Now', url: 'https://paymentprovider.com/form/abc123?fn=${de_number}&am=${de_owing}', }, { label: 'Pay Now', url: 'https://paymentprovider.com/form/def456?fn=${de_number}&am=${de_owing}', }, ], },

screens -> payment -> check_require_bank This value determines if the bank name field is included in the check payment form (Only applies if check payments are enabled in server-side settings).
screens -> payment -> check_default_country This option is used to set the default value of the Bank Country dropdown field on the check payment form. The Bank Country field is used to determine which bank code field is displayed within the check payment form (ex. US - Routing Number, AU - Bank State Branch Number). Currently supported values are US, CA, and AU. The default value if left unspecified is US.
screens -> payment -> check_hide_country This value determines if the Bank Country dropdown is hidden on the check payment form. If set to true, the default country value will be used to determine the bank code field used on the form.
screens -> payment -> check_tab_label This value can be used to change the label text of the check payments tab from the default text of "Check Payment".
screens -> payment -> alert_text Here you may optionally define HTML code that will replace the content of the "Please Note" alert box on the payment page.
screens -> terms_and_conditions Terms and Conditions are optional. If provided, the consumer must accept the Terms and Conditions before using the Collect! Consumer Portal. Note: This value is a string of HTML which will be displayed in the browser. Make sure to escape any quotation marks for proper display. To leave off, you can leave the code out of the file or set the text to undefined.

Example:
terms_and_conditions: { text: '<h1>Licensing & Software Terms of Use Agreement</h1> <p>These terms of use of this site:</p> <ul> <li>Term 1</li> <li>Term 2</li> <li>Term 3</li> </ul>', },

screens -> authorization_form Here you may optionally define a form that will be displayed to users on their first login. The result of the completed form will be saved as an Attachment on the Debtor's record in Collect! The form can be defined using an array of form input JSON objects with the following parameters:

  • label: Label for the field.
  • fieldType: Data type for the field. Values are: TEXT, CHECKBOX, SELECT, DATE
  • field: Field name from the Attachment table in the database. Non-Attachment field are considered form-specific and will not be stored in the database.
  • confirmWithField: If you require a user to validate data entry, such as Email, use a non-Attachment field name for the Field parameter, then put the Attachment field name here. See Email Address example below.
  • required: Is the data entry required. Values are: true, false
  • prefill: Prefill the field will data.
  • options: For the SELECT field type, enter an array of options.

Example:
authorization_form: [ { label: 'Full Name', fieldType: 'TEXT', field: 'at_detail_2', required: false, }, { label: 'Address', fieldType: 'TEXT', field: 'at_detail_3', required: false, }, { label: 'State', fieldType: 'SELECT', field: 'at_detail_4', required: false, options: ['CA', 'OR', 'WA'] }, { label: 'Email Address', fieldType: 'TEXT', field: 'at_detail_5', required: false, }, { label: 'Confirm Email Address', fieldType: 'TEXT', field: 'confirm_email', confirmWithField: 'at_detail_5', required: false, }, { label: 'I consent to ABC Collections contacting me via email using this email address.', fieldType: 'CHECKBOX', field: 'email_check', required: true, }, { label: 'Cell Phone Number', fieldType: 'TEXT', field: 'at_detail_6', required: false, }, { label: 'I consent to ABC Collections contacting me via text messaging using this cell phone number.', fieldType: 'CHECKBOX', field: 'phone_check', require: true, }, { label: 'Home Phone Number', fieldType: 'TEXT', field: 'at_detail_7', required: false, }, ],

theme The Collect! Consumer Portal allows you to configure 5 colors. Update the primary color to match the theme of your website. The others can be left as default unless you want to change them.

Example:
theme: { primaryColor: '#2BA3BB', errorColor: '#D93232', warningColor: '#f89939', successColor: '#A1BF2F', infoColor: '#3DD4F2', },

Top of page.

Server-Side Configuration

Some features of the Consumer Portal are implemented server-side and their configuration options are stored in the Collect! database. These options can be modified on the administration page of the consumer portal which can be reached via the path: /auth/admin-login

  1. Open https://api.yourdomain.com/configuration-portal in a web browser.
  2. Sign in with an Operator with a User Level that has been designated as Manager.
  3. Select Consumer Portal from the menu.
  4. Update the values in the applicable fields.
  5. Click Save Changes.

Key Description
Account Statement Report This option allows you to specify a Collect! report that provides a statement of the debtor's account.
Group Statement Report This option allows you to specify a Collect! report that provides a summary of a debtor group. This is only available to grouped debtor accounts.
Transaction Receipt Report This option allows you to specify a Collect! report to run as a receipt for each payment in the payment history transactions table.
Payment History Replacement This option allows you to specify a Collect! report that will replace the payment history transactions table.
Hide Transaction Table This option allows you to hide the payment history transactions table from the Debtor's account breakdown screen:

  • 0 - Visible (Default)
  • 1 - Hidden
Phone Opt in/out This option specifies the level of control a user has over the Allow Calls switch which specifies if the user consents to being contacted via that phone number. There are 3 values you may choose from:
  • 0 - User's cannot toggle the Allow Calls switches (Default)
  • 1 - User's can toggle the Allow Calls switches, but must have at least 1 active phone number
  • 2 - User's have full control of the Allow Calls switches
Email Opt in/out This option specifies the level of control a user has over the Allow Emails switch which specifies if the user consents to being contacted via that email address. There are 3 values you may choose from:
  • 0 - User's cannot toggle the Allow Emails switches (Default)
  • 1 - User's can toggle the Allow Emails switches, but must have at least 1 active email address
  • 2 - User's have full control of the Allow Emails switches
Request Call Feature Enabled This option allows you to disable the "Request a call" feature in the consumer portal:
  • 0 - Visible (Default)
  • 1 - Hidden
Request Call Hours This option allows you to specify which hours of the day the user may select for their request call. 9AM - 4PM by default.
Request Call Days This option allows you to specify which days of the week the user may select for their requested call. All 7 days a week by default.
Request Call Weeks in Advance This option allows you to specify how many weeks in advance users may select a date for their requested call. 1 week by default.
Request Call Timezone This option allows you to notify users the timezone that they are requesting a call for. By default, no timezone is displayed.
Assign Phone Contacts To This option specifies which operator phone contacts are assigned to.

Phone contacts are created via the Request a Call feature.

If blank, review contacts are assigned to the debtor's collector.

Assign Review Contacts To This option specifies which operator review contacts are assigned to.

Review contacts are created when new records (Phone, Email, Address) are added by debtors on their settings page or when a closed debtor account attempts to sign in.

If blank, review contacts are assigned to the debtor's collector.

If a Contact Plan is defined below for Phone, Email, or Address, then the plan will execute instead of creating this review.

Log Debtor Sign-On to Notes Records a note to the debtor record whenever this debtor signs on to the consumer portal:

  • 0 - Disabled (Default)
  • 1 - Enabled
Transaction WHERE clause Leave Blank for default behavior, which is all Payment Transactions with the Omit from Client Statement box unchecked. To further filter the query, you can add an additional statement.

Example:
'tr_type in [101, 102, 110]'

Required Registration Fields You may optionally select which field(s) used to verify account ownership during registration are required.
Disabled Registration Fields You may optionally select which field(s) used to verify account ownership during registration are disabled.
Contact Plan - New Phone You may optionally select a contact plan to run when the user adds a new phone record. If left undefined, the above review contact will be created by default.
Contact Plan - New Email You may optionally select a contact plan to run when the user adds a new email record. If left undefined, the above review contact will be created by default.
Contact Plan - New Address You may optionally select a contact plan to run when the user adds a new address record. If left undefined, the above review contact will be created by default.
Contact Plan - Inactive Login You may optionally select a contact plan to run when a user whose mode on their debtor account is NOT active attempts to log in. If left undefined, the above review contact will be created by default.
Contact Plan - Forgot Password You may optionally select a contact plan to run when a user provides an email address that does not exist on their account when making a forgot password request.
Contact Plan - Authorization Form You may optionally select a contact plan to run when a user submits the Authorization Form on their first login. The Authorization Form will only be displayed on the user's first login if it has been configured in the Client-Side Configuration above.
Display Grouped Accounts If this option is enabled, then debtors in the same group as the primary debtor account will be listed under Linked Accounts on the home/accounts page. This will allow the user to view the payment history and make payments on the grouped debtor accounts.
Display Inactive Grouped Accounts If this option is enabled, then grouped debtor accounts whose mode is NOT active will be listed under Linked Accounts. The primary debtor account will still need to be Active to allow sign-on. This option will have no effect if Display Grouped Accounts is disabled.
Inactive Account - Grace Period Specifies the number of days a user may still log in after their debtor account has been closed.
Check Payment - Transaction Type This option enables the check payment form on the payment screen and defines what transaction type will be used when generating the check transaction.
Contact Us - Client Phone Field You may optionally select a client field that will be used to fetch the Phone value on the Contact Us page. The value will be fetched from the specified field of the client record that owns the consumer account. If no value is selected or if the specified field is empty, then the company -> support -> phone value from runtime-config.json will be used.
Contact Us - Client Email Field You may optionally select a client field that will be used to fetch the Email value on the Contact Us page. The value will be fetched from the specified field of the client record that owns the consumer account. If no value is selected or if the specified field is empty, then the company -> support -> email value from runtime-config.json will be used.
User Documents Enabled This option specifies if the "My Documents" page is enabled for consumers. The My Documents page allows consumers to download attachment records linked to their debtor record in Collect!
User Documents Configuration This option specifies the criteria used to display attachment records on the My Documents page. Consumers may only view/download files that match this criteria.

Warning Note WARNING: If no criteria are specified, then all attachment records will be visible to consumers.
When you have update the rules, click Confirm. You MUST still click on Save Changes on the main form.

Top of page.

TCN Chat Configuration

TCN account holders can link TCN Chat to their Collect! consumer portal to give their consumers the opportunity to use chat bot and agent chat functions from their consumer portal.

Collect! Side Preparation

If not already done:

  1. Install the Collect! API as per How To Install The Rest API
  2. Install and configure the Consumer Portal as per the above instructions

TCN Side Preparation

Contact TCN for TCN Chat setup and training. TCN Chat provides a range of options for bot responses and live agent chat.

Installing TCN Chat in the Collect! Consumer Portal

  1. Open your TCN Omniboss Dashboard and navigate to the X page
  2. locate X
  3. Copy the TCN Chat API Key to your clipboard
  4. Open your Collect! Consumer Portal and navigate to the runtime-config.js file. Add the following code to the end of file and include your TCN APIKey and other configurations.

tcnConfig: { apiKey: '{TCN API Key}', url: 'chat.usa.tcn.com', mainColor: '#2BA3BB', headingColor: '#FFFFFF', paragraphColor: '#000000', }

Useful Note You may have to use a different URL. Please contact TCN support to obtain the correct URL.

Top of page.

Was this page helpful? Do you have any comments on this document? Can we make it better? If so how may we improve this page.

Please click this link to send us your comments: helpinfo@collect.org