I'd like to filter the available child record types a user can create based on the parent record type, any ideas?

  • 1
    You may need a two fields like making dependent picklist and store record type there and this will allow you to achieve your functionality.Its just my thought .I wont be surprised if people come with better solution Dec 6, 2012 at 18:15
  • A simple validation rule on the child record should do it, though its more reactive than proactively filtering. Dec 6, 2012 at 19:36

3 Answers 3


One possible alternative is to override the new record creation of the child object with a Visualforce page, and use whatever logic you want to enforce the record type. I suppose the end user will be happy too.

Like the others mentioned a validation rule could work, but it may be a bit ugly from the end user perspective, since its not really the user's fault that he/she was allowed to choose that option.

  • This is what I ended up doing as well. Sorry I hadn't responded sooner. Thanks.
    – rcraven
    Feb 9, 2014 at 0:38

As techtrekker mentioned, I'd suggest creating a validation rule. I'm not aware of a way to filter immediately and would be interested to know if there's a better solution.

As a quick test I created a validation rule on the child object, similar to the following:

Parent__r.RecordTypeId == '012E00000001lBA' && RecordTypeId != '012E00000001lB5'

In this example, if the child record type's Id is not equal to '012E00000001lB5' when the parent record type Id is '012E00000001lBA', the child record fails to save.

If you're going to be using this validation rule in multiple org's, a better way may be to create a formula field on both the parent and child objects that reference the record's RecordType.Name. Then you could adjust your validation rule to something like this:

Parent__r.RecordTypeName__c == 'Parent Record Type' && (RecordTypeName__c != 'Child Record Type Allowed A' || RecordTypeName__c != 'Child Record Type Allowed B')

This should work, try this in validation rule of child object

ParentObject__r.RecordType.Name <> RecordType.Name
  • Your answer to this 9 years old question supposes the RecordType names of child and parent are to be identical, if they are a valid combination, right? I don't see this assumption in the question. Jun 20, 2022 at 9:28

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .