Many developers will agree that using standard “out-of-the-box” Salesforce functionality whenever possible will make your organization easier to maintain in the long run. However, it is likely that you will eventually run into a problem or feature request that just isn’t possible without some custom code. Part of being a successful developer is being able to recognize these situations and offer solutions. At Bayforce, we’ve developed hundreds of Visualforce pages and corresponding Apex classes and triggers. Here is one situation we encountered where using custom code just made sense:
Customizing Opportunity Product Schedules
Certain objects, such as Opportunity Schedules, don’t allow much if any customization. To allow full customization, Bayforce created a custom Schedule object and used Visualforce to simplify the process (see example)
1. Custom Visualforce Button on Opportunity Product allows for quick generation of Product Schedule
2. Clicking “Generate Schedule” on the Opportunity Product brings up a Visualforce page. The user can input values for Schedule generation:
3. After completion, the schedule appears on the Opportunity Product layout via another Visualforce page:
4. To further improve functionality, a “Clear Schedule” button was added to delete the schedule and enter new fields to generate a new one.
As mentioned earlier, “out-of-the-box” solutions are easier to create and maintain. Workflows are one type of powerful standard automation that can optimize many business processes. Use workflows to:
- Send an email alert triggered by an event, like a new lead responding to a form on your website.
- Assign a task to someone, such as a reminder phone call 30 days before a contract is up for renewal.
- Update a field value based on an event or other update, i.e. change a Contact Status to “Qualified” when recommended fields on the Contact record are populated.
Additionally, Process Builder can be used for more complex situations where workflows are not possible.
- Use Process Builder when more than one outcome is possible. For example, process automation can check if a case is on hold, and next check the case owner’s Manager and follow appropriate actions set by your management.
- Process Builder can also be used to update fields on a child record. For example, when an Opportunity is closed/won, a discount amount stored on the Opportunity can be applied to all related Products.
Whether optimizing out-of-the-box features or providing a knowledge-base of successful customizations to maximize your organization’s Salesforce experience and ROI, Bayforce can help–and a conversation is a good place to start. Email us at email@example.com.