Integration with Financials
Salesforce is not a financial management system, nor is it intended to be. Some financial transactions such as grant payments are initiated, configured, or populated from within Salesforce, but Salesforce is integrated with another cloud-based application called Netsuite, which handles the actual processing of the transactions and is the accounting system of record.
You may hear the term "ERP" (Enterprise Resource Planning) used to describe Netsuite. It sounds lofty, but it's a blanket label applied to many financial systems that can also assist with business activities related to Finance, such as supply chain management, vendor relationship management and other processes, which MakeWay does not find necessary to use.
Workato Triggers & Data
So how does information move back and forth between Salesforce and Netsuite? Another cloud platform called Workato carries out these tasks.
Workato regularly checks for changes in data in either Netsuite and Salesforce that are designed to "trigger" an action.
For example, when a Grants Administrator approves a grant payment in Salesforce, Workato sees the change has been made, and sends the grantee identifier and payment amount to Netsuite where a new invoice is created. Finance then issues the payment via cheque or EFT. When they do, the invoice is marked as Paid, which Workato also uses as a trigger to change the Salesforce status on the payment to indicate it has been sent.
The following table explains the various integration triggers and data that are exchanged.
Note that with triggers there can be a delay of several minutes or several hours before actions are performed and data are exchanged. The delay depends on the business process that is being supported by the integration and the timeline requirements for updating the systems established during system design.
System: Object: Record | Trigger(s) | Action(s) Performed | Data Exchanged |
---|---|---|---|
Salesforce: External Grant: Opportunity | A new Grant is created and approved in Salesforce for an external grantee. | Generate a new Opportunity (Award) for the Grantee and associate it with their Account record in Salesforce. | None for integration |
Salesforce: External Grant: Distribution | A grant payment is approved and released in Salesforce. | Generate New Vendor Bill (invoice) in Netsuite with Grantee as Payee (Vendor) | Approval Flag Payment Amount Payment ID Vendor ID (Grantee) Primary Contact at Grantee Org |
Netsuite: Grant: Invoice | An invoice associated with a Grant payment is marked as PAID in Netsuite. | The payment status is set to PAID in Salesforce. | Paid Flag Netsuite ID Salesforce Payment ID |
Salesforce: Grant: New Grantee | A new grantee is created in Salesforce and associated with a Grant and a Grant Payment | Basic Vendor profile is created in Netsuite, and the Netsuite ID is passed back to Salesforce | Vendor Type (Grantee) Netsuite Vendor ID |
Salesforce: Grant: Primary Contact | The primary contact on a Grant is changed in Salesforce | The Primary Contact for the Grant is updated in Netsuite for Finance reference | Grant ID Contact Info |
Salesforce: Transfer Grant: Distribution | A intra or inter-company Grant is created in Salesforce | The appropriate credit and debit journal entries between the designations are created in Netsuite. | Fund IDs Payment Amounts Payment IDs |
Salesforce: Grant: Various | A grant has a status of ACTIVE and all Distributions are PAID or CANCELLED and all grant reports have been APPROVED or CANCELLED | Grant status is automatically set to CLOSED in Salesforce | None for integration |
Salesforce: Fund | New or Existing Fund (Designation) is created in Salesforce and/or has status changed to OPEN via “Open the Fund” button. (Only users with Fund Administrator Role can create) | New Designation created in Netsuite with status of not CLOSED | Fund ID Fund Status Subsidiary |
Salesforce: Fund (Designation) | Existing Fund has status changed to CLOSED in Netsuite | Netsuite Fund status is set to CLOSED | Fund ID Fund Status |
Salesforce: Fund (Designation) | Existing Fund is blocked or deactivated in Salesforce | The statuses of INACTIVE or CLOSED TO DONATIONS are set on the Netsuite Fund record. | Fund ID Fund Status |
Salesforce: Opportunity: Award | An existing or new Award has its status changed to CLOSED/WON | An Award ID is generated in Salesforce based on the parent Fund, which is then passed to Netsuite as a new Class. The Netsuite ID is then passed back to the Salesforce object for future transaction tracking. | Award ID Award Amount Netsuite ID |
Salesforce: Opportunity: Donation, Account | A new Constituent Contact and Account record is created in Salesforce as a result of a Closed/Won Opportunity | A new Constituent record is created in Netsuite in the corresponding subsidiary. (Netsuite does not allow sharing Constituents across subsidiaries). | Basic Contact Info Salesforce Account ID Subsidiary Opportunity Amount Fund ID |
Salesforce: Opportunity: Donation | A new Donation is created in Salesforce and the status is set to Closed/Won (either manually or automatically by Click and Pledge for an online donation) | The Donation Amount, Destination Fund ID(s) and Constituent information are passed to, and recorded in, Netsuite. The Constituent is matched to an existing contact record in Netsuite (see above for new contact) and a Cash Sale is recorded along with the recipient Fund ID(s) and amount(s). | Constituent Info Donation Amount Recipient Fund(s) ID(s) Opportunity ID |