Method:CRM allows you to keep track of custom information on any of your customers through the use of custom fields.
However, doing so requires a strong understanding of Method:CRM customization as well as the relationship between contacts and customers.
In fact, the first thing you will need to decide on is where you want to add the custom field:
- Add a custom field to a contact.
- Add a custom field to the customer.
This article outlines how to add a custom field to the Entity table.
The Entity Table vs the Contacts Table
The Entity table holds all the customers, vendors, and employees that are synced from QuickBooks. When a "customer" is mentioned, it could also mean "vendor" or "employee", but for the purpose of this document we will stick with "customer".
When you record a financial transaction, it is usually done with a customer, who could be one person or an organization. The customer is stored in the entity table, and in it you will find information needed for that transaction. For example, in a customer record, you will have the shipping address, the balance, the sales tax, account number, etc.
A customer can have multiple contacts. If the entity is something you have a financial transaction with, the contact is someone whom you interact with. In Method:CRM, it is the contact who is associated with activities.
And thus, the contacts table will hold personal information. For example, you can store their email, their phone number, their Instagram, and whether or not they have opted out of marketing.
The great thing is, each contact has access to all the information of its parent entity.
Thus, when you create a custom field, you need to ask a few questions:
- Is the custom field information specific to a single contact of the entity? Then it belongs in the contacts table.
- Is the custom field information any contact may need access to? Then it belongs in the entity table.
- Is the custom field information specific to the organization as a whole? Then it belongs in the entity table.
- Birthday - belongs in the contacts table
- Favourite color - belongs in the contacts table
- Age of company - belongs in the entity table
- Company bio - belongs in the entity table
- Business type - belongs in the entity table
If the field you wish to add needs to be added to the contact, then proceed to Add a Custom Field to the Contacts App.
Otherwise, continue on.
Create Custom Field in Entity Table
Once you have decided where to add the custom field, you can create it in the entity table.
You may have noticed there are separate Customer, Vendor, and Employee tables, and you could add the custom field to those tables, but they will be reflected in the Entity table, so you may as well add it to the entity table.
For this article, we will use the example of adding a text field called "AccountType".
1. Add your custom field to the Entity table. For more information on creating custom fields, please see our article Add Custom Field to Existing Table.
Note that custom fields created in Method:CRM will not sync to QuickBooks.
It was mentioned earlier that contacts can access information from their parent entity. Although not necessary, it may be useful for the contact to quickly refer to this custom field, so let's add it in the contacts table as a linked field.
2. Create a linked field in the Contacts table to your newly created custom field in the Entity table. For more information on linked fields, please see our article Field Types.
Now that the custom field is created, we need to add it to our screens in the Contacts app. You will need to add it to three screens in total:
- The View Contact screen
- The Edit Contact screen
- The New Contact screen
The tricky part about this is the base table for the New Contact screen, which is the Contacts table. We'll cover that last.
Update View Contact Screen with Custom Field
If you need or want your custom field to be added to the View Contact screen, the only difficult aspect is deciding where to put it. Make sure, however, it's within the Customer Details section.
Update Edit Entity Screen with Custom Field
Again, this is pretty straightforward. When you edit a customer or a vendor, it will take you to the Edit Entity screen. Since this screen's base table is the entity table, find your custom field and place it on the screen.
Update New Contact Screen with Custom Field
The New Contact Screen is the most complicated screen in this customization. First off, you need to decide where to put the custom field. However, the below radio button hides and reveals sections depending on the choice of the user. Different sections will show depending on whether or not the user is adding a customer, a lead, a vendor, or a new contact to an existing entity.
You may want your field to show all the time, or only show for a specific entity type. Customize the screen, and look at the Change Event for the EntityTypeRadio control within sectionNewContact as shown below. The actions will show you which sections are hidden or shown for each type.
The second problem is the base table for this screen. It's the Contacts table. This means your custom field which shows up under Insert Controls is the field from the Contacts table, and thus it's the linked field. And remember, linked fields are read-only! If you were to drag this field onto the screen, the user will not be able to edit it.
You will need to drag in the appropriate object (in the case of our example, a text input object) and manually save this object (as opposed to relying on the Save All action.)
In the below diagram, I added a row to the secEntityInfo section, dragged in a text input object (not a field), and then called it "Account Type". Notice that the "1" was appended because an AccountType control already exists, which is fine.
Where you drag in your object is up to you, however, make sure you drag in an object control and not the field from the Contacts table.
Finally, you need to update the actions so that your new custom field is saved when the user clicks the save button. At the bottom of the designer, you will find a SaveBase button. Edit the SaveBase button's Click Event.
You will need to update one or two actions, depending on your preferences.
- If your custom field is only for customers and leads, then you will need to edit the Insert Records Into Table action at line 9 which inserts a new Customer / Lead.
- If your custom field is only for vendors, then edit the Insert Records Into Table action at line 11, which inserts a new Vendor.
- If your custom field is for customers, leads, and vendors, then you need to edit both.
For each Insert Records Into Table action you decide to edit, add in your custom field to save. Remember to reference the correct object on screen.
And that's it! You've added your custom field to your the Entity table.