function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
Katie HambergKatie Hamberg 

Trigger only working for admins

Hello,
We have the below trigger that is working for me as an admin, but it's not working for other profiles. What the trigger does is it forces the user to always have an open task until the record is completed.

trigger createNextTask on Task (before update) {
     
   Map<Id,string> whatIds = new Map<Id,string>();
   Set<Id> ECIds = new Set<Id>();
   Set<Id> EPIds = new Set<Id>();
   Map<Id,string> whoIds = new Map<Id,string>();
   set<Id> EI2ContactIds = new Set<Id>();
   set<Id> EI2ProjectIds = new Set<Id>();
   List<Task> EI2tskList = new List<Task>();

   Task EI2tsk;
   private Id eidTaskRecordTypeId = Schema.SObjectType.Task.getRecordTypeInfosByName().get('Outreach').getRecordTypeId();
  
   if(TriggerHandler.firstRun) {
   
     for(task t:trigger.new){
        if(t.RecordTypeId == eidTaskRecordTypeId){
          string whId = t.WhoId;            
          if(whId!= null && whId.startsWith('003')&& !EI2ContactIds.contains(t.WhoId)){
             EI2ContactIds.add(t.WhoId);
           }
           string whaId = t.WhatId;
           // cnte sandbox id for ISEIF and EI2 Projects is a1Z
           // production id for ISEIF and EI2 Projects is a0Y
           if(whaId!= null && whaId.startsWith('a0Y')&& !EI2ProjectIds.contains(t.WhatId)){
              EI2ProjectIds.add(t.WhatId);
           }
        }     
     } 
     
       
     for(contact c :[select Id,EI2_Act_on_Status__c,ARES_Status__c,Real_Time_Status__c from contact where Id IN :EI2ContactIds  ]){
        if( ( c.EI2_Act_on_Status__c =='Interested'|| c.EI2_Act_on_Status__c == 'Referred')||(c.ARES_Status__c == 'Interested'||c.ARES_Status__c =='Referred')
           ||(c.Real_Time_Status__c == 'Interested'|| c.Real_Time_Status__c == 'Referred')){
               ECIds.add(c.id);
        }
     }      
     for(ISEIF_and_EI2_Projects__c p :[select Id, Project_Status__c, ARES_Status__c, EI2_Project_Status__c From ISEIF_and_EI2_Projects__c where Id IN :EI2ProjectIds ]) {
        if( p.EI2_Project_Status__c=='Active' || p.EI2_Project_Status__c =='On Hold' || p.EI2_Project_Status__c=='FO Hold' ||
            p.EI2_Project_Status__c=='Construction' || p.EI2_Project_Status__c=='Audit' || 
            p.EI2_Project_Status__c=='QAQC' || p.EI2_Project_Status__c=='House Party Scheduled' ||
            p.ARES_Status__c=='Active' || p.ARES_Status__c =='On Hold' || p.ARES_Status__c == 'FO Hold'||
            p.Project_Status__c=='Active'|| p.Project_Status__c=='On Hold' || p.Project_Status__c=='FO Hold' ){
               EPIds.add(p.id); 
        }
     }
         
     for(task ta:trigger.New){
        
           string status = ta.TStatus__c;
           string priority = ta.TPriority__c;
           string program = ta.TProgram_Related_To__c;
           string subj = ta.TSubject__c;
           string comm = ta.TComments__c;
                                    
           if( (ECIds.contains(ta.WhoId) || EPIds.contains(ta.WhatID)) && ta.Status == 'Completed'){ 
              if(status== null){
                ta.TStatus__c.adderror('The Contact or ISEIF and EI2 Project is still Open. Please Fill the Status field to create a new task');
              }
              if(priority == null){
                ta.TPriority__c.adderror('The Contact or ISEIF and EI2 Project  is still Open. Please Fill the Priority field to create a new task');
              } 
              if(program == null){
                ta.TProgram_Related_To__c.adderror('The Contact or ISEIF and EI2 Project is still Open. Please Fill the Program Related To field to create a new task');
              }
              if(subj== null){
                ta.TSubject__c.adderror('The Contact or ISEIF and EI2 Project is still Open. Please Fill the Subject field to create a new task');
              }
              if(comm== null){
                ta.TComments__c.adderror('The Contact or ISEIF and EI2 Project is still Open. Please Fill the Comments field to create a new task');
              }
             if(status!=null&&priority!=null&&program!=null&&subj!=null){
                EI2tsk = new Task();
                EI2tsk.Subject = ta.TSubject__c;
                EI2tsk.Priority = ta.TPriority__c;
                EI2tsk.Program_Related_To__c = ta.TProgram_Related_To__c;
                EI2tsk.ActivityDate = ta.TDue_Date__c; 
                EI2tsk.OwnerId= ta.OwnerId;
                EI2tsk.Status = ta.TStatus__c;
                EI2tsk.Description = ta.TComments__c;
                EI2tsk.WhoId = ta.WhoId;
                EI2tsk.WhatId = ta.WhatId;
                EI2tsk.Interaction_Result__c=ta.TInteraction_Result__c;
                EI2tsk.Interaction_Source__c = ta.TInteraction_Source__c;
                EI2tsk.Interaction_Type__c = ta.TInteraction_Type__c;
                EI2tsk.RecordTypeId=ta.RecordTypeId;

                EI2tskList.add(EI2tsk );                        
                   
              }
           } 
      } 
      
            
      if(EI2tskList.size()>0){
        database.insert(EI2tskList,false);
      }
      TriggerHandler.firstRun = false;
   }
 }


 
Best Answer chosen by Katie Hamberg
Katie HambergKatie Hamberg
Nevermind, we were able to figure this out!  Thanks!