Administrators Guide

From HS Wiki
Revision as of 13:05, 6 September 2024 by Mark (talk | contribs) (→‎Example Batch Job: Import Missing PayPal Transactions)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

This document is intended for users with full administrative access to HS.

Remember, if you'd like your HS system to be customized beyond your initial setup, we're here for you. Contact us directly at info@houghtonsolutions.net to discuss your needs.

Company Settings

Many aspects of your HS Instance are controlled from your Company Settings master record. It's important to understand these fields and set them up properly so your HS CRM works correctly for your organization.

Your HS consultant will help you understand and define these fields during your initial setup. Also be sure to use the blue question mark help messages for more information about each field.

Sending email from HS

Emails sent from HS, including auto-responders as well as one-off emails from the Contact Detail Screen, use the following fields in the Company Settings to send SMTP email:

  • Email Server
  • Email Server Port
  • Email Authentication Username
  • Email Authentication Password
  • Email Secure Protocol (ssl/tls)

Debugging email send issues

There is additional field, Email Debug Level, that will print all SMTP connection information available whenever an email is sent. This is helpful when emails are not sending properly. Set the desired debug level, then go to the Contact Detail Screen and attempt to send an email to yourself from your own Contact record, using the — action — pulldown menu option.

When the email is sent, all debug information will be displayed on your screen to help you and/or your email systems administrator in solving the problem that is keeping your emails from being sent.

Be sure to set this debug level to DEBUG_OFF when you are finished debugging.

HS Menus

You can maintain your menus and menu options to each as you see fit with HS.

AG Menus.png

AG Multiple Menus.png (An HS landing page with two menus)

You can create new menus, or modify existing menu options from the Menu Options section in your Company Administration menu on your HS home page.

AG Menu Options.png

AG Menu Detail.png


 

HS User Administration

Users in HS are those staff members that have access to your HS back-end system, are unrelated to the Contacts table.

Administrators (Users with Full System Access) may create or edit any User. Users without this privilege may view other User records, but may only change their own.

Choose the Users option in the Company Administration menu to add, change, and delete User records.

Revoking HS Access

Once a User has been active in your system, you probably don't want to delete their record so you can maintain a history of their activity.

To revoke access to HS, simply uncheck the "Active" checkbox in their HS User record, and their login will be disabled.

User Roles

User Roles allow you to define permissions for your staff to access various menu options in your HS system, and keep other screens off-limits to certain Users.

For each set of access permissions that you want, create a separate User Role. Then assign Users to the User Role they belong to using the User Detail Screen.

Access Types

HS has two types of permissions: Grant and Deny.

With Grant access, you specify exactly which Menus and/or Menu Options the User has access to.

With Deny access, you specify which Menus and/or Menu Options the User does not have access to.

In this example, Users with the Sales Rep role have access to everything except the Company Administration menu, the Company Parameters menu, and the P2P Campaigns menu option:

AG User Role Deny.png

Whereas in this example, Users with the Event Volunteer role has access to only the Menu Options shown, and no others:

AG User Role Grant.png



 

User Batch Jobs

The Batch Job system in HS allows users to queue a potentially long-running process for execution, and be notified of their success or failure afterward by email.

The components of the system are as follows:

  • The user_batch_jobs table, which controls each job and contains the execution information including job output;
  • The /admin screen to enter job parameters, upload csv files if any, and schedule the job for execution;
  • The cronjob /src/exec_user_batch_jobs.php, which polls the user_batch_jobs table each minute to kickoff any new batch job requests;
  • The main batch job source program, located in the /src directory and accepting a set of parameters;

Example Batch Job: Import Missing PayPal Transactions

PayPal is not completely reliable with their transaction-posting webhook (Instant Payment Notifications/IPN), so HS has a tool to periodically import any missing transactions within a date range.

The request screen is found at Home->Tools->Import Missing PayPal Transactions, or /admin/paypal_batch_import.php:

AG PayPal Batch Import.png

Once the user generates and exports the csv file from their PayPal account, uploads it here, and submits the job, the following takes place:

  • The /admin screen process will insert the job request record into the user_batch_jobs table using the following code:
$src="batch_paypal_import.php";

include "batch_job_schedule.php";
  • The cronjob exec_user_batch_jobs.php will find the unprocessed job record and start the batch program in the background using the PHP exec command:
$cmd = "nohup $PHP $src --id=$id >> ".LOG_DIR."/user_batch_jobs.log 2>&1 &";

UPDATE user_batch_jobs SET date_started=NOW() WHERE id='$id'

exec($cmd);
  • The batch program itself, in this example /src/batch_paypal_import.php, will then execute the job and log the output with the following code:
$log_filename = "paypal_import.log";

require "batch_job_start.php";   // opens this job's logfile, reads all input parameters from user_batch_jobs record

(code to import any PayPal transactions in the csv uploaded file that are missing from the HS payments table)

require "batch_job_finish.php";  // updates the user_batch_jobs record with success/error message, date_completed, and notifies the requesting user via email


 

3rd-Party Integrations

Integration with 3rd-party systems allows you to partner with credit card and payment processors, large-scale email marketing, e-commerce shopping carts, and just about any other system you may be using to engage with your customers or donors. If your 3rd-party system isn't included here, contact us directly and we can make it happen!

Communication with these systems is normally done using REST API's, where your HS system is waiting for notifications, often called webhooks, of transactions made on other systems. HS will then automatically update your database with the information so your system is always up-to-date.

Google Analytics & Recaptcha

Use this section to integrate your HS-enabled website with Google's Analytics and Recaptcha products. See your HS Consultant for more information if necessary.

Authorize.net

Authorize.net is a leading online credit card processor, that has a proven track-record of security and reliability.

They also offer direct EFT bank transfers, and can manage automatic subscription payments from your customers or donors by bank or credit card. At Authorize.net this system is referred to as Automated Recurring Billing (ARB).

Configuring Authorize.net for HS

Once your Authorize.net account is set up, you'll need to set your Silent Post URL and create an API key in order for HS to validate and accept credit cards from your website in real-time.

Login to your Authorize.net account, then navigate to your Account page and click the Silent Post URL link:

AG auth net silent post.png


Then, for the Silent Post URL, enter https://yourdomain.com/src/authorize_transaction.php

AG auth net silent post2.png


Next, on Authorize.net navigate to your Account page and click the API Credentials and Keys link.

AG auth net API.png


Create a new transaction key, and store the both the API Login ID and your secret transaction key in your HS Company Settings Authorize.net section:

AG auth net HS.png


Authorize.net will then post all transactions to HS in real-time, keeping your Payment/Donation database up-to-date at all times.



 

Stripe

To integrate your HS instance with Stripe for online credit card transactions and recurring payments, you'll need to:

  1. Create an API key pair to link your website to Stripe for checkout
  2. Setup a Stripe Webhook to post events to HS

Note: Stripe offers a "Test Mode" instance, completely separate from your production instance, which can be very useful during development. It has its own set of API keys, Webhooks, Products, and Pricing, so be sure to be in the correct mode for your task at hand.

Stripe API Keys

Login to your Stripe dashboard then click on "Developers" and then "API keys":

AG Stripe API Keys.png

Generate an API key pair, and store this information in your HS Company Settings in the Stripe section:

AG Company Settings Stripe.png

Also in your HS Company Settings, choose your between production and test mode:

AG CCP.png

Note: If your HS instance is not configured for Stripe, you won't see these fields. Contact your HS consultant to initialize this for you if needed.

Stripe Webhook

Login to your Stripe dashboard then click on "Developers" and finally "Webhooks":

Stripe Webhook.png

You'll need to create a webhook to post to https://yourdomain.com/src/stripe_transaction.php and be sure to include at a minimum the following events:

  • charge.failed
  • charge.refunded
  • charge.succeeded
  • checkout.session.completed
  • customer.subscription.created
  • customer.subscription.deleted
  • customer.subscription.updated

Setting up Subscriptions in Stripe

If you'd like to use Stripe to manage monthly or annual recurring payments or donations, you'll need to set up identical Products in both Stripe and HS with a fixed amount that you can offer to your customers/donors on your website.

In Stripe, each product will need a fixed price.

AG Stripe Product.png

Once it's created in Stripe, create an identical Product in HS and enter the Stripe Price ID in the appropriate field for that product:

AG HS Stripe Product.png

Important Note: Unfortunately Stripe does not offer dynamic recurring payments, where the amount is determined at checkout, so if this is a requirement of yours you'll need to find a different online credit card processor.


 

PayPal

If you have a PayPal business account, you can integrate your HS-enabled website to accept PayPal payments.

On your HS Company Settings record, enter the appropriate information in the PayPal section:

AG HS PayPal.png

Next, login to your PayPal account, choose "Account Settings" from your pulldown menu (upper right), select "Notifications", and finally "Update" on the Instant Payment Notifications line.

AG PayPal IPN.png

You'll then be able to enter the endpoint for PayPal transaction posting to HS. Enter https://yourdomain.com/src/paypal_transaction.php

Be sure to enable Instant Payment Notifications, then PayPal will post all relevant completed transactions and subscription changes to your HS database.


 

Mailchimp

HS offers full back-and-forth integration with Mailchimp, meaning changes to your HS database will automatically update your Mailchimp database, and vice versa.

To do this you'll need to enter the following information into your HS Company Settings in the Mailchimp section:

AG HS Mailchimp.png

Note: If your HS instance is not configured for Mailchimp, you won't see these fields in your HS Company Settings. Ask your HS consultant to activate them if necessary.

You'll also need to setup your Mailchimp webhook to notify HS of changes made from their end.

Mailchimp API Key

You can create or find this in your Mailchimp->Account page, under the "Extras" pulldown menu choice "API Keys". From this screen you create a new key or copy your existing key and enter it into your HS Company Settings, Mailchimp API Key field in the Mailchimp section.

Mailchimp Audience ID

Choose your Mailchimp Audience to sync with HS, then navigate to Settings->Audience name and defaults. There you'll find your Audience ID. Copy that to your HS Company Settings, Mailchimp Audience ID field in the Mailchimp section.

AG Mailchimp Audience ID.png

Mailchimp Webhook

Choose your Mailchimp Audience to sync with HS, then navigate to Settings->Webhooks. Create one to point to https://yourdomain.com/src/mailchimp_callback.php

AG Mailchimp Webhook.png

Mailchimp merge fields

Mailchimp allows you to define any number of custom database fields for your audience, called merge fields. Your HS consultant will help you set these up and configure your HS instance to keep these fields in sync with your HS data for those fields, so you can use them in Mailchimp to segment your audience and/or fill in your Campaign email templates.

Mailchimp Notifications Email

Use this field in HS to send Mailchimp signup error notifications, so they may be investigated if necessary.