Development questions
Why is Trigger.newMap not available in before insert?
Trigger.newMap is a Map<Id, SObject>. In a before insert trigger, the records have not been saved yet, so no Id has been assigned. A map keyed by Id cannot be built, so Trigger.newMap is null.
Use Trigger.new in before insert. From after insert onward, Ids exist and Trigger.newMap is populated.
apex-triggertriggercontext-variables
More Development questions
- What is an Apex Trigger in Salesforce and when should you use it over Flows?
- What is the difference between before triggers and after triggers?
- Explain all Trigger context variables (isInsert, isUpdate, isDelete, isUndelete, isBefore, isAfter, isExecuting, size, operationType).
- What is the difference between Trigger.new and Trigger.old?
- In which trigger events are Trigger.new and Trigger.newMap available?
- In which trigger events are Trigger.old and Trigger.oldMap available?