Chargent Account Updater
How much time does your organization spend every month calling and emailing customers whose credit cards have expired? Are you churning revenue and subscriptions from expired cards?
Chargent's Account Updater feature allows you to send automated notifications of expiring credit cards to your customers, and have customers update their payment information in Salesforce through a secure online form.
Account Updater is a Scheduled Apex batch which checks the Credit Card Expiration Date fields in the Opportunity, Case, or Chargent Orders Transaction package. Credit Cards that are expiring this month (or are already expired when the batch runs) are sent update notifications.
Account Updater is based on Chargent's Payment Request feature, and works similarly, but simply stores updated billing information without processing a payment. An email notification is sent to customers with expired or expiring cards, with a link that takes them to a self-service hosted payment page.
Hosted on your own Salesforce Site, the payment page features a brandable, secure credit card form, where your customers enter their payment information. A customer's billing address is already populated on the form, and they can update it if they wish, along with providing new credit card details. Those values are automatically updated into the associated Salesforce Opportunity, Case or Chargent Order record, depending on which Chargent Transaction package your organization is using.
Chargent Account Updater is available in the Sites and Platform editions of Chargent Payment Processing for Salesforce. AppFrontier will provide you with an activation key to enable the feature.
IMPORTANT: To use Account Updater, first set up Chargent's Payment Request feature.
Once you have set up and completed a test Payment Request to make sure everything was fully configured, add the following permissions to enable Account Updater:
- Go to Setup > Sites
- Choose your Payment Request site
- Click Public Access Settings button, then Edit
- Click Object Settings
- Click Account Updater Logs
- Enable Object Permissions for Read, Create, and Edit
- Go to the Chargent Orders, Opportunities, or Cases object (depending on which package you installed)
- Enable Object Permissions for Read, Create, and Edit
- Under Custom Object Permissions, the following additional permissions are required:
- Account Updater Logs - Check Read, Create, Edit
- Opportunities, Cases or Chargent Orders - Check Read, Create, Edit
Then, simply configure a few settings and then schedule the Salesforce job to run.
- Customize the Account Updater email template
- Customize the Account Updater settings
- Schedule the TChargentBatchCheckCards job
- Add the Search Criteria (optional)
- Go to My Settings > Email > Email Templates
- Select the Chargent Templates Folder
- Select the Account Updater Feature Email template
- Edit the template to customize it to your organization's needs
Note: Email notifications from the Account Updater are always sent to the email address in the Billing Email field
Account Updater Settings
Access the Account Updater Settings under Chargent Settings > Advanced Settings. Check the box that says “Use Simple Account Updater Feature”.
Here you can customize a number of Account Updater features:
- Account Updater Error Text
- Account Updater Confirmation Text
- Account Updater Expiration Hours
- Use Simple Account Updater Feature
Account Updater Error Text
The confirmation message a customer sees after a failed payment.
Account Updater Confirmation Text
The confirmation message a customer sees after a successful payment.
Account Updater Expiration Hours
Set the number of hours you would like an individual account updater request link to be active. You can choose any number from 1 to 999999999999999999
Use Simple Account Updater
There are two options for updating an expired credit card on the Salesforce back end. The Use Simple Account Updater checkbox works as follows:
- True (checked): When a customer updates their credit card using the link and form, the new data is inserted into the correct Opportunity, Case or Chargent Order. No transactions are processed to check the credit card. In other words, we do not attempt to validate the card.
- False (unchecked): When a customer updates their credit card using the link and form, Chargent creates a cloned version of the Opportunity, Case or Chargent Order with the expired card, and updates the data with the new billing information supplied by the customer. We then do an Authorization to check if the card is valid and can be charged.
If the Authorization is successful, we then void the authorization, the new billing data is inserted into the original Opportunity, Case or Chargent Order, and we delete the cloned record. We do this because sometimes there can be issues with existing Opportunity, Case or Chargent Order records (such as already having an outstanding Authorization that has not yet been captured, which would cause an error for additional authorizations).
Schedule the Account Updater Job
- Go to Setup > Develop > Apex Classes and click Schedule Apex
- Select the TChargentBatchCheckCards class and create a scheduled job.
We recommend scheduling the batch to run frequently enough to notify people of expiring cards (more than monthly), but not as frequently as daily, to avoid sending too many email notifications to your customers. Once or twice a week is probably ideal.
By default, the Account Updater will evaluate ALL records with the Chargent Credit Card Expiration fields (Salesforce Opportunity, Case or Chargent Orders record, depending on which Chargent Transaction package you are using.)
To exclude certain records from being evaluated by the Account Updater batch, you can use a Salesforce Object Query Language (SOQL) query in the Chargent Settings Account Updater Search Criteria field.
NOTE: You should only put the end of the SOQL statement, the portion which comes after the WHERE clause with the conditions, in the field.
Some Search Criteria statements:
OrderNumber != null AND PaymentStatus = 'Recurring' Total > 180 StageName = 'Closed Won' RecordType.DeveloperName ='Savings'
For information on SOQL statements, please see the Salesforce documentation.