1

I am working on a project where we are implementing a Refund Feature on a Transaction Custom Object.

We have 2 options, one to create a picklist having values Payment and Refund, and the other, a separate record type, where we would need to create a layout.

Considering if one has clients, which method would be easier to onboard them?

  • Are there any docs/links that anyone can share, where I can go and learn in-depth about what goes on behind the scenes when record types or picklists are created?
2
  • Can you explain a bit more, What do you mean by Considering if one has clients,? Commented Aug 12 at 12:53
  • @NagendraKumarSingh When I say considering one has clients, I meant that we have clients that are already using the payment transaction object for their payments within Salesforce, but they don't have a refund functionality, so we are thinking of implementing that functionality as a feature while still keeping onboarding and all other things simple. Commented Aug 12 at 14:05

1 Answer 1

0

The inner workings of most Salesforce stuff is meant to be a black box. It doesn't really matter if, for example, a picklist is implemented as an ENUM in Oracle or if it's a foreign key to a separate table. It's Salesforce's responsibility to design, test, and maintain that; and to provide documentation for us, their customers.

Picklists

A picklist is just a field, and outside of allowing different values based on recordtype, there's not much more to it than that.

You can have dependent picklists (which allow you to restrict which values are shown based on the value of a "controlling field").

Recordtypes

Recordtypes are more powerful

  • You can assign a page layout to each Recordtype (which allows you to include or exclude specific fields, and make some fields read-only at the UI level)
  • You can restrict access, only allowing some profiles (or, as Salesforce is moving people towards, PermissionSets) to create records using that Recordtype
  • Picklist values can be (read: must be additionally) managed through the RecordType
  • You can make a "quick action" that creates a record of a specific record type

So which should I use?

My vote is for RecordTypes

For enforcing company controls/business rules, like preventing the Sales department from issuing refunds (as that could create a perverse incentive) or preventing HR from seeing customer contact info (GDPR, probably), Recordtypes are probably the simplest and most effective tool.

The easiest way to prevent someone from mucking around with data they shouldn't be touching is to not show them that data in the first place (failing that, making it read-only for them). Recordtypes with page layouts accomplishes that.

Picklists are more for multi-valued things within a single process, like priority/escalation for customer complaints, country/region, billing terms (net 30/60/90, etc...)

Salesforce does give us enough rope to hang ourselves. You could implement processes and controls using picklists and other tools like Validation Rules and Approval Processes, but it's really easy to increase the administration load and user training load when taking that approach.

Remember that quick/temporary solutions tend to be rather permanent. Try to do it right the first time, and use as few moving parts as is reasonable.

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.