Below is my trigger which creates a lead and then it should create a task but it is not doing that
trigger LeadKeyFieldPopulated on Lead (before insert, after update) {
List<Task> NewTask = new List<Task>();
//Task t;
for(Lead leadKeyField : Trigger.new) {
//Lead newLeadKeyField = new Lead();
leadKeyField.LastName = 'Test';
leadKeyField.Company = 'XYZ';
//insert leadKeyField;
Integer keyField = 0;
Integer CountKeyField = 0;
leadKeyField.Key_Fields_Populated__c = keyField;
if (leadKeyField.FirstName != Null) {
keyField = KeyField +1;
CountKeyField = 1;
}
if (leadKeyField.LastName != Null) {
keyField = KeyField+1;
CountKeyField = 2;
}
if (leadKeyField.Email != Null) {
keyField = KeyField+1;
CountKeyField = 3;
}
if (leadKeyField.Phone != Null) {
keyField = KeyField+1;
CountKeyField = 4;
}
if (leadKeyField.Website != Null) {
keyField = keyField+1;
CountKeyField = 5;
}
if (leadKeyField.Title != Null) {
keyField = keyField+1;
CountKeyField = 6;
}
leadKeyField.Key_Fields_Populated__c = keyField;
//if (leadKeyField.Key_Fields_Populated__c >=3) {
Task t = new Task();
//for(integer i=0;i<=leadKeyField.Key_Fields_Populated__c;i++) {
//t.OwnerId = '0056g000001Sp3f';
t.OwnerId = leadKeyField.OwnerId;
t.WhoId = leadKeyField.Id;
t.WhatId = leadKeyField.Id;
t.Description = leadKeyField.Description;
t.ActivityDate = Date.today();
t.Status = 'Completed';
//if (CountKeyField == 5) {
// system.debug('Verify the' + 'First name' + leadKeyField.FirstName);
//}
//t.Subject = system.debug('Verify the'+newLeadKeyField);
NewTask.add(t);
//insert NewTask;
}
//NewTask.add(t);
insert NewTask;
}
// }
//}