
trigger UpdateCampaignResponse on Zendesk__Zendesk_Ticket__c (after insert) {
for(Zendesk__Zendesk_Ticket__c ticket : Trigger.new) {
// Check if ticket requester is a lead
if(String.valueOf(ticket.Zendesk__Requester__c).startsWith('00Q')== True) {
// Create a set, add ticket requester id
set<id>leadId=new set<id>();
leadId.add(ticket.Zendesk__Requester__c);
// Lookup and assign lead based on set
Lead lead=[Select CampaignResponse__c from Lead where id in :leadId];
// Mark Campaign Response on lead
lead.CampaignResponse__c=True;
update lead;
}
}
}

Yay for writing your first trigger. As per best practices, you never want to run a query or perform dml inside a loop. Other than that, you are only updating one lead out of your set. Try this:
There may be some typos in there but that should get you going. If you are still stuck write back. GL :)trigger UpdateCampaignResponse on Zendedk__Zendesk_Ticket__c (after insert) {
Set<Id> leadId = new Set<Id>();
for(Zendesk__Zendesk_Ticket__c ticket : trigger.new) {
if(string.valueOf(ticket.Zendesk__Requester__c).startsWith('00Q') == true) {
leadId.add(ticket.Zendesk__Requester__c);
}
}
List<Lead> leads = new List<Lead>([SELECT CampaignResponse__c FROM Lead Where Id IN: leadId]);
List<Lead> leadsToUpdate = new List<Lead>();
for(Lead l : leads) {
l.CampaignResponse__c = true;
leadsToUpdate.add(l);
}
if(!leadsToUpdate.isEmpty())
update leadsToUpdate;
}