Summer '18 introduces version 4 of the DealerTeam application suite (API v.4). Included in the following release notes are new features and product enhancements as well as bug fixes and general system updates.
New and Updated Features
To better support users of Carfax a new set of features have been added that allows users to obtain Carfax Vehicle History reports directly from within DealerTeam.
Add the Carfax Vehicle History Report module to either your Service Vehicle or Vehicle Inventory standard page layouts by including the following Visualforce Pages:
Alternatively the CarfaxVehicleHistoryReport component can be added to your custom Visualforce code. This global component will allow you to easily bind our reporting interface without custom code.
Use the following example to embed the CarfaxVehicleHistoryReport in your custom VF Page:
- <dealer:CarfaxVehicleHistoryReport />
A new property of appraisals has been created. The field is of type picklist. The picklist is user editable but comes with the following default values.
- Outstanding: Exceptional mechanical, exterior and interior condition; requires no reconditioning. Vehicle is in exceptional mechanical, exterior and interior condition with no visible wear; it requires no reconditioning. Paint will have a glossy appearance. Vehicle has no mechanical and/or cosmetic problems and has a clean engine compartment. Exterior and interior are free of any damage. Tires are in nearly new condition. Vehicle has a clean title and has the ability to pass an emissions inspection.
- Clean: Some normal wear but no major mechanical or cosmetic problems; may require limited reconditioning. Vehicle shows some normal wear but has no major mechanical and/or cosmetic problems. Paint still has a glossy finish and may have slight scratches or dings. Some reconditioning may be needed. Interior will have minimal fading and wear. Tires have substantial tread remaining. Vehicle has a clean title and has the ability to pass an emissions inspection.
- Average: May have a few mechanical and/or cosmetic problems and may require a considerable amount of reconditioning. Vehicle may have a few mechanical and/or cosmetic problems and may require a considerable amount of reconditioning. Exterior paint has some dullness. Vehicle may have a considerable amount of scratches or dings. Interior material is slightly worn and faded. Tires have some usable tread remaining. Vehicle has a clean title and has the ability to pass an emissions inspection.
- Rough: Several mechanical and/or cosmetic problems requiring significant repairs. Vehicle has several mechanical and/or cosmetic problems. Exterior and interior need significant repairs. Tires may need to be replaced. Vehicle may need minor repairs to pass an emissions inspection, but has a clean title.
- Damaged: Major mechanical and/or body damage that may render it in non-safe running condition. Vehicle has major mechanical and/or body damage that may render it in non-safe running condition. Exterior and interior is damaged or worn. Tires need to be replaced. Vehicle may have a branded title (i.e. salvaged, flooded, frame damaged, etc.). Vehicle may require significant repairs to pass an emissions inspection.
Changing store locations is available for lightning. Edit your homepage and under drag and drop MyDealershipUtility module into your layout.
When performing a perpetual inventory adjustment using the parts management screen, the reason for change now saves to a new field. This feature enhancement allows better tracking and audit capabilities when changing parts quantities manually.
The Region field has been added to the Locations object to help group locations. Regions are logical groups of business units. Each Location is optionally parented by a Region. This level of hierarchy supports reporting enhancements as well as standard and custom business logic.
At the completion of a parts physical inventory two reports are created and put into the attachments of your Physical inventory, there will be a PDF version and a CSV Version of the Parts Physical. Both of these reports will be protected so that users can not delete them.
Selecting a Vehicle inside a Deal now filters vehicles Out of Stock and Rentals. Only vehicles available for purchase will display when searching the Vehicle Inventory in the Deal Screen.
Dealership Location field and Location ID field will automatically update once you add a division to a user's profile and click save.
In the Service & Disclaimer section of the Location Record you can include default disclaimers that will print on Service and Parts Department documents. These can be up to 5000 Characters by default.
Click here to learn How to add texts to Disclaimers.
Want to change a label on the Deal screen? Do you want to hide cost figures? Now you can make custom changes to what the Deal screen displays. Fields on the Deal screen now respect field level security (FLS) and can be relabeled with translation overrides.
There is a toggle button on the bottom right of the Deal Screen to allow a user to show / hide Deal Cost figures. An Eye icon displays the cost while a Lock icon hides the cost figures.
To offer a greater degree of versatility when printing invoices, a new property has been added to the Dealer Location Object:
- dealer__Dealer_Location__c.Logo_Name__c - Type : Text(255)
Click here to learn How to Set Store Location Logo by The Location Object.
A toggle switch that changes the discount amount to discount percentage has been added on the deal screen.
A new toggle switch has been added to the Deal screen located inside the Deal Recap header. When activating the switch it changes the conversion discount fields from currency amounts to percentages.
- Fee Default Formula Field respects a custom formula field.
- Adding the same Fee twice will not execute. An error will popup.
- A Refresh button has been added to the Fee related lists on Deals to be able to recalculate Fees.
- Assess different fees for a specific location.
- Each Fee may have a default value by location.
- Each Fee may be auto-added to the deal by default under specified criteria.
- Each Fee can be added to the deal by default under a specified criteria.
- Each Fee may be defined as taxable by location.
- Each Fee value can be merged into FDF forms.
- On Deal Create - Pre-populate into Fees object.
- Allow fees to be editable via the Edit button.
- Adding/Editing/Removing fees recalculate in the Deal Screen.
- Each Fee can be restricted to default value by permission.
Lightning Experience - Simplified Sales Up Creation - List of Suggested Sales Ups, Contacts, and Business Accounts Appear
When entering contact information in fields you will be able to view partial matches or duplicates of:
- suggested Sales Ups
- suggested Contacts
- suggested Business Accounts
- Sales Ups
Click here to learn How to Create a New Sales Up for Lightning.
What is changed?
A new field has been introduced into the Service Repair Order header. The new field is Warranty Account.
The warranty account lookup field added to the repair order header is intended to be used for warranty processing when posting warranty repair orders.
Click here to learn How to Record the Warranty Account when Pay Type is Warranty on a job line.
As an enhanced feature of assigning Stock Numbers to Vehicle Inventory records a Dealership has the ability to create Stock Numbers by using a Stock Number Book.
Here are other methods of creating the next available stock number.
- Assign by last digits of Vin number.
- Assign by a numerical sequence with a starting Stock Number.
- Assign by using Stock Number Book.
Parts Invoice, Pre-Invoice and Pick Tickets
Printable PDF documents now support enhanced location information. Previously these items used the Location Name and, the now deprecated, Location.Address__c field for the Company Name as well as the Street. With the Summer '18 release these items are now leveraging the "Contracting Name" for the Company Name title. If the Contracting Name field is not populated the printable documents will use the Location Name to represent the Company Name. In addition the flexible company name we have removed the Address field that is slated for removal from the form. The Street field replaces the Address field and will better serve our clients going forward.
When creating a delivery repair order from the delivery tab of the deal the RO# and link will update without having to refresh the page.
Set Rental Agreement Invoices by location. Assign Visual Force pages for Rental Agreement Contract and Rental Agreement Receipt. If the fields Rental Agreement Contact and Rental Agreement Receipt are left blank the system will default to a DealerTeam managed page.
Click here to learn How to Set the Rental Agreement Invoice by Location.
As part of the Summer '18 4.x release a new Platform Event has been introduced.
As part of our transition to Lightning the classic apps for DealerTeam Sales, DealerTeam Service, DealerTeam Parts, DealerTeam Rentals have been upgraded to Lighting Compatible Applications. Upgrading a Classic app to a Lightning app lets you and your users take advantage of custom branding and the enhanced navigation features available in Lightning Experience.
When working in the Lightning Experience your users will now have a "My Dealership" selector in the Utility Bar of the application. Previously this was located on the sidebar in classic.
The Purchase Order Receiving object will record the receiving events in the Purchase Order Accept/Receive process. The Purchase Order Receiving Event object will replace recorded receiving events in Notes/Attachments for Purchase Orders. When purchase orders are received/accepted the Purchase Order Receiving table tracks the values and items that are received. Specifically Parts purchase orders can have a partial receive event.
Please note this feature is in Developer Preview mode. We consider the feature to be high quality and ready for use, however if you experience any issues please contact firstname.lastname@example.org for assistance or log a case via the partner portal, success.dealerteam.com.
Writing test coverage can be time consuming and require large amounts of data setup. To better serve our customers we have extended our Test Factory to be accessible by developers outside of our teams using Global API Access Modifiers. Each managed data object DealerTeam supports includes a test factory method for instantiation of data within the object. If no data is specified each field is populated with example data for usage.
// Creating an Account and Contact Record with Data Populated
Account a = (Account)dealer.TestFactory.createSObject(new Account(), true);
Contact c = (Contact)dealer.TestFactory.createSObject(new Contact(), true);
// Creating default records with values for Service Vehicle, Repair Order and Standard Operation Code
dealer__Service_Vehicle__c veh = (Service_Vehicle__c)dealer.TestFactory.createSObject(new Service_Vehicle__c(), true);
dealer__Service_Repair_Order__c sro = (Service_Repair_Order__c)dealer.TestFactory.createSObject(new Service_Repair_Order__c(dealer__Customer__c = a.Id, dealer__Customer_Contact__c = c.Id, dealer__Vehicle__c = veh.Id), true);
dealer__StandardOpCode__c opc = (StandardOpCode__c)dealer.TestFactory.createSObject(new StandardOpCode__c(), true);
The Utility Bar is a quick access component that can be used from any screen. Easily change the dealership location using the Utility Bar without interrupting page navigation.
Click here to learn How to Change the Store Location from the Utility Bar.
Due to the large amount of data provided when decoding vehicles (VIN Decoding) we are moving the storage of this data into a Big Object. Currently VIN Data is stored in two objects, one for vehicle inventory and one for service vehicles. These two objects are being deprecated in favor of a single storage object. Each time a VIN is decoded the object will be updated with the latest VIN Data regardless of the decode resulting from a Vehicle Inventory record or a Service Vehicle record.
To take advantage of this migration Administrators must log a case to activate the change. This change processes all records currently stored in the two named data objects and populates the data to the dedicated big object. You may reference the following guide to learn more about Big Objects.
In the process of building the Big Object Storage, a new component providing a quick access view of installed/additional equipment was created. This component is called VehicleEquipmentView.
A check-box field In My Store has been added to the following objects (Service Estimate, Service Repair Order, Sales Up, Deal, Vehicle Inventory, Appraisal, Rental Agreement) By harnessing this field, we have created a group of in my store list views on some objects to only show records that are from the Company Location of the User viewing the page.
The Carfax widget is now optional on appraisals.
The New Sales Up lightning component has been optimized to increase speed, fluidity and ease of use when facing large data volumes.
If your dealership wants to change the name of the Deal Type from "Chassis / Conversion" or "Equipment Only" you can. Go into the Deal Type field on the Deal object and edit the picklist values.
Change the Label [NOTE: do not change the API name which may cause errors]
That new label will show in the Deal screen.
The new event modal dialog within the service scheduler has been updated to use system labels for the placeholder text on the Customer and Vehicle inputs. This change allows Administrators to overwrite the placeholder text when using the Translation Workbench.
New relationships have been added to support a deeper relationship between Service Estimate Lines and Sub Lines and the resulting Service Repair Order Sub Lines.
The following fields have been added.
Upon the conversion of an estimate to a repair order the following reference fields are populated.
To support price matrices within our application a new metadata type has been added. The Price Matrix metadata type will be the root storage of the customer configurable matrix for parts sales.
The initial release of price matrix mdt will allow customers to specify a percentage markup for parts by cost range.
FD:FL1A - Oil Filter
Matrix Low : 3.99
Matrix High: 6.99
Matrix Percent: 85%
Matrix Applciation : Location and Payment Method of Internal
Price : = (5.95 * .85) + 5.95 = 11.00 || 5.95 * 1.85 = 11.00
If you mark a job line as Declined and all other Job lines on the Service Repair Order are complete the Service Repair Order will update to a Status Of Cashier.
This allows you to use the current flow and prevent users from changing Status.
Previously, when creating a Purchase Order from a Repair Order you had to select the job line # when adding a new line. Now, the process is simplified. After clicking on the Sublet Purchase Order or Parts Purchase Order button from the Service Job Line, the job will pre-populate in the purchase order line by default.
To better support separation of concerns within the domain layer logic, the trigger for Desired_Vehicles__c has been updated. The updates migrate the current trigger logic to an appropriate trigger handler class.
Currently there is no active logic within the Desired Vehicle Domain Layer Logic. Previous versions of DealerTeam Core provided a mechanism for matching inventory based on customer stated desired vehicles. This logic has been temporarily suspended to create better matching algorithms and reduce SOQL overhead.
What's does all that developer info at the beginning of the error message mean? It doesn't matter to you and now it's not included anymore. Look for friendlier error messages on Deals without the gibberish.
Update failed. First exception on row 0 with id a13L0000003vhbuIAA; first error: FIELD_CUSTOM_VALIDATION_EXCEPTION, The validation test rule is blocking your save: 
Becomes this error...
Custom Validation Exception: The validation test rule is blocking your save
Mobility Invoice and Quote Forms - Retail price if marked up would show the retail price and the sale price being more
If the Sale Price is higher than the Retail Sale Price on the Vehicle Inventory Record (Chassis or Conversion) the DealerTeam system will not display the Retail Price from the inventory record only the Sale Price.
What has changed?
To better serve customers using scratch orgs and other custom development processes we have extended our InstallScriptAPI to be globally accessible.
From the developer console you can now run one or all methods from the InstallScriptOrgAPI class.
Don't bother changing related list layouts on Account for Sales Up. Now the native "New" buttons will automatically populate Account when creating a Sales Up
Within the equipment section of the Deal Screen, the field labels on the left column filters have been updated. The update migrates the MFG to Manufacturer, Part_Category to Primary Category and Sub_Category to Sub Category. These values are driven from the respective fields on the Aftermarket Object and may be changed by organizations using the translation workbench.
Want to say something nice to your customer? Anything included in the Comments field of the Service Repair Order will now print on the Customer Pay copy of the invoice PDF.
Now the Comment field will print at the bottom of the PDF version of the Parts Invoice and Pre-Invoice. Use it to include PO numbers, approval codes or to just write a nice message.
We have moved the 4502 Grant Payor type to apply as a standard Payor. In the Prior version we had the 4502 payor type accruing before Sales Tax was assigned to the Deal. We have Corrected that behavior in the core Product to insure that the Correct Taxable amount is populated.
Creating a formula field on the Deal object to evaluate a sales fee wasn't exactly ideal. Now you can write/edita formula into the "Default Formula Amount Field" from a custom component on the Location. As long as the analysis remains on the Deal object it will evaluate to a value. If you don't want the fee to display, then make the formula evaluate to null.
Deal Fees Default Amount Formula now allow addition of a formula for evaluation instead of only using formula fields on the Deal object.
The forced status setting of Cashier to the RO Header when all job lines had either no charges or non open lines was behaving erratically. Additionally customers began reporting collision with a managed trigger and custom trigger execution context resulting in the history table filling up quickly.
Dependent picklists in the Source, Lead Type, or Lead Status fields will now be respected on the New Sales Up component. Do not make these field dependent upon other fields that aren't on the screen, as they won't appear.
Known Issues : Corrected
Previously, the Company Contract Name on the Location object did not print on forms. Now the Company Contract Name/Store Name appears on printed forms.
In the Current build the only time a Daily parts order is created is when a part is added to a Service Repair order. This update will make it so that if a quantity of a part on a Service Repair order is increased from its original amount. The Daily parts order will have a separate order line added to it for the increase in quantity. Please note that if you reduce the quantity of a part on a Service Repair Order this will not reduce the number of parts needed on the daily parts order. This is to prevent service from attempting to remove parts quantities from the order after a purchase order has been created.
As you can see the Daily Order is standard from the Day. The Parts order lines are unique and occur with any increase to the Service Repair order quantity.
Please note that Parts Invoices are not subject to this logic and create separate ordering policies.
In the Purchase Order Email, the subject line would revert to the default subject after being edited. The subject line now responds to the edits.
**New Feature Enhancement**
The subject now includes the purchase order # in it by default.
Scheduling a service appointment without adding a customer could conditionally fail and not display an error to the end user. This issue has been corrected. If you are still experiencing issues saving events to the service scheduler please contact your success manager or email@example.com
The lookup relationship for the Standard Operation Code for Scheduler Appointments was lost, the lookup has been reset and works as should.
A correction has been made to the Sales Up object. To create a B2B Sales Up you must start from the Business Account. Previously, on the Persons Account object the New Sales Up button did not include a field to select an existing Buyer name/contact which happened intermittently.Now, creating a Business Account Sales Up is working as expected.
Vin decode button on the vehicle inventory record creates an error. This error has been corrected.
The field Deal Close Date is viewable in Reports and Related List for the Deal object.
Fixed a bug which prevented parts lines from being deleted, caused by duplicate parts lines. Now the part can only be added once and can be deleted as necessary.
Previously in the Delivery Tab, Delivery Street and Delivery Mobile fields did not populate. Clicking Copy From Buyer button now populates buyer's street and mobile information.
Some bug fixes on the deal screen include:
- Standard Tax in Deal Recap section matches Sales Tax on Form pdf
- Trade in allowance gets accounted for on the from pdf
- Trade in allowance is visible in Deal Recap section
Previously Committing a Parts Transfer resulted in mass record changes to the Parts Ledgers. Now when performing a Parts Transfer, and completing the "Commit" will not create multiple Parts Ledger Items.
TheClose Deal and Store in Financialsbutton only has the availability to close once. Once the Deal is closed the button will be unavailable and the label will read Deal has been closed.
Click here to learn How to Close a Deal.
We have updated the Deal object to allow you to Delete Trade in Vehicles that were created on the Deal or in the Sales up from the Deal. There was a bug that would allow you to remove it from the Dealview Page, but the value would not be removed from the Deal. This has been updated so the Deletion works as it should.
Updating a Vehicle Inventory record without a Service Vehicle existing does not attach to Vehicle Inventory.
Edit/updating of the Vehicle Inventory record creates the service vehicle and attaches it to the Vehicle Inventory Record.
When there are multiple deals on a Sales Up changing the vehicles does not set the Deal as the Primary Deal. To make a Deal the Primary Deal you must click the Set as Primary button.
Changing the Salesperson or Sales Team members on a Deal are being set. After selecting members or interchanging them, the teams will stay accordingly.
We have corrected the issue that was causing the internal server error when you attempted to view or edit an Invoice.
Previously, certain accounts would throw an error after trying to save edits made to the account. Accounts with complex record sets can now be edited and saved successfully.
Ability to create new Rental Agreements is working properly.
We updated the logic behind the creation of the Desired vehicle to no longer create multiple Desired vehicles on Sales up Creation.
The Deal screen now renders properly when using Internet Explorer (IE) 11.
If you use a multi stage approval process for handling your deals it will now filter to the correct approval process. We have also updated the Error Message to output on the Dealview page for the Deal.
The Store Location was not assigned when creating a Deal. Now, when entering the DealerTeam system, the defaulted store location will be assigned to the newly created Deal.
Saving a Service Repair Order now displays an error related to the field set on the Service Repair Order screen.
After a bulk update to Sales Ups the Lead Name trigger strings together multiple items from the batch into all Lead Names resulting in incorrect Sales Up records. Bulk updates no longer strings multiple items from a batch into Lead Names.
There was a condition where Maintenance Contracts could be added to a Deal but would disappear once the Deal was refreshed.
In the SRO for Customer Copy, Warranty Copy, and Audit Copy the Header Values were drawing from the my location of the running user. We have updated that to look at the Company Location of the Service Repair Order to Populate the Header Value.
Decode button is visible and working in Service Scheduler page for the Lightning Experience.
Previously, when attempting the Updating Pricingaction on a line item in a Parts Invoice the update would not save. The update now saves successfully.
We have upgraded the Logic behind the Parts on order and invoice. Specifically the update of parts quantity is now dynamic and will update the ledger values in real time. If the invoice is for more than the inventory on hand the Daily parts order will update. If you change the part quantity the Daily Parts Order will update to the new value. If the quantity is changed to where the parts order is no longer needed it will Delete the parts Order from the Daily parts order if it has not already been processed.
Any Account the user has permission to view can now be selected, instead of just the Buyer, while Cashiering on the Deal screen.
Beginning with version 4.9 the system generated Invoice_Number__c for Parts Invoices will be prefixed with PI if the Invoice is an over the counter sale and RO if the invoice is related to a Service Repair Order. This change allows a wider range of invoice numbers and makes it easier for end users to understand by looking at the invoice number if these parts are being sold in relation to a Service Repair.
In some cases when an error was present the "Print Selected Forms" button would go inactive and require a screen refresh. That has been fixed and now remains active after an error is displayed.
Double click override on the save button makes the save process of Sales Appointment function properly.
When decoding vehicle information into the recently introduced Big Object, the resulting vehicle equipment could extend beyond 255 characters resulting in the BigObject record to be skipped. We have introduced text field length limiting to ensure any equipment description fields beyond 255 characters are shortened.
Setting the sales disposition on related sales ups from Deals could result in a Bad or Restricted value for Picklist
When an Org has enabled the setting of the SalesUp Disposition Status based on the Deal an error could be encountered. The domain layer logic on the Deal object has been updated to ensure restricted values can not be set.
When processing payments within the deal screen it is possible for errors and user messages to fail to render to the screen. This issue has been addressed to ensure any validation rules or execution errors are displayed to the end user.