Ajukan akses awal

Masukkan nama depan serta email atau nomor telepon Anda. Kami akan menghubungi Anda dengan detail akses Tajo.

Task Management

The Brevo CRM Tasks API enables you to create and manage sales activities, follow-ups, and reminders to keep your team organized within the Tajo platform.

Overview

Task management is essential for:

  • Sales follow-ups with automated reminders and due dates
  • Team coordination assigning activities to specific team members
  • Deal progression linking tasks to deals and companies
  • Activity tracking monitoring team productivity and completion rates
  • Customer engagement scheduling loyalty program outreach and check-ins

Quick Start

Create Task

POST https://api.brevo.com/v3/crm/tasks
Content-Type: application/json
api-key: YOUR_API_KEY
{
"name": "Follow up on Enterprise Loyalty proposal",
"taskType": "call",
"date": "2026-02-15T10:00:00Z",
"duration": 1800,
"notes": "Discuss volume discount tier and loyalty point allocation",
"assignTo": "[email protected]",
"companiesIds": ["comp_123456789"],
"dealsIds": ["deal_abc123def456"],
"contactsIds": [12345],
"done": false,
"reminder": {
"value": 15,
"unit": "minutes"
}
}

Response

{
"id": "task_xyz789",
"name": "Follow up on Enterprise Loyalty proposal",
"taskType": "call",
"date": "2026-02-15T10:00:00Z",
"done": false,
"created_at": "2026-01-25T14:30:00Z"
}

Get Tasks

List All Tasks

GET https://api.brevo.com/v3/crm/tasks?limit=50&offset=0&sort=desc
Content-Type: application/json
api-key: YOUR_API_KEY

Response

{
"items": [
{
"id": "task_xyz789",
"name": "Follow up on Enterprise Loyalty proposal",
"taskType": "call",
"date": "2026-02-15T10:00:00Z",
"duration": 1800,
"assignTo": "[email protected]",
"done": false,
"companiesIds": ["comp_123456789"],
"dealsIds": ["deal_abc123def456"],
"created_at": "2026-01-25T14:30:00Z"
}
],
"total": 1
}

Filter Tasks

GET https://api.brevo.com/v3/crm/tasks?filters[done]=false&filters[taskType]=call&sort=date:asc

Get Single Task

GET https://api.brevo.com/v3/crm/tasks/{task_id}
Content-Type: application/json
api-key: YOUR_API_KEY

Task Types

The CRM supports several task types for different sales activities:

TypeDescriptionUse Case
callPhone callFollow-up calls, demos, check-ins
emailEmail outreachProposals, updates, newsletters
meetingIn-person or virtual meetingDemos, negotiations, reviews
todoGeneral taskInternal work, research, prep
deadlineTime-sensitive taskContract renewals, milestones

Automated Task Creation

Deal-Based Task Automation

Create tasks automatically when deals progress through stages:

class TaskAutomation {
constructor() {
this.tasksApi = new TasksApi();
}
async createDealFollowUp(deal, stageChange) {
const taskTemplates = {
'Lead': {
name: `Qualify lead: ${deal.name}`,
taskType: 'call',
daysFromNow: 1,
duration: 900
},
'Qualified': {
name: `Schedule demo: ${deal.name}`,
taskType: 'meeting',
daysFromNow: 3,
duration: 3600
},
'Demo': {
name: `Send proposal: ${deal.name}`,
taskType: 'email',
daysFromNow: 1,
duration: 1800
},
'Proposal': {
name: `Follow up on proposal: ${deal.name}`,
taskType: 'call',
daysFromNow: 5,
duration: 900
},
'Negotiation': {
name: `Finalize contract: ${deal.name}`,
taskType: 'deadline',
daysFromNow: 7,
duration: 3600
},
'Closed Won': {
name: `Onboard customer: ${deal.name}`,
taskType: 'meeting',
daysFromNow: 2,
duration: 3600
}
};
const template = taskTemplates[stageChange.newStage];
if (!template) return null;
const taskDate = new Date();
taskDate.setDate(taskDate.getDate() + template.daysFromNow);
return await this.tasksApi.createTask({
name: template.name,
taskType: template.taskType,
date: taskDate.toISOString(),
duration: template.duration,
assignTo: deal.attributes.deal_owner,
dealsIds: [deal.id],
companiesIds: deal.attributes.company_id ? [deal.attributes.company_id] : [],
contactsIds: deal.attributes.contact_id ? [deal.attributes.contact_id] : [],
done: false,
reminder: { value: 30, unit: 'minutes' }
});
}
async createLoyaltyCheckIn(company) {
return await this.tasksApi.createTask({
name: `Loyalty program check-in: ${company.name}`,
taskType: 'call',
date: new Date(Date.now() + 30 * 24 * 60 * 60 * 1000).toISOString(),
duration: 1800,
assignTo: company.attributes.account_manager,
companiesIds: [company.id],
notes: `Review tier status: ${company.attributes.loyalty_tier}\nAnnual spend: $${company.attributes.annual_spend}`,
done: false,
reminder: { value: 1, unit: 'days' }
});
}
}

Bulk Task Operations

class BulkTaskManager {
async createRenewalTasks(daysBeforeExpiry = 90) {
const renewalDate = new Date();
renewalDate.setDate(renewalDate.getDate() + daysBeforeExpiry);
const companies = await this.companiesApi.getCompanies({
filters: {
'attributes.renewal_date': `<${renewalDate.toISOString()}`
}
});
const tasks = [];
for (const company of companies.items) {
const task = await this.tasksApi.createTask({
name: `Contract renewal: ${company.name}`,
taskType: 'deadline',
date: company.attributes.renewal_date,
assignTo: company.attributes.account_manager,
companiesIds: [company.id],
notes: `Contract value: $${company.attributes.contract_value}\nCurrent tier: ${company.attributes.loyalty_tier}`,
done: false,
reminder: { value: 7, unit: 'days' }
});
tasks.push(task);
}
return tasks;
}
}

API Methods Reference

// Create a new task
const task = await tasksApi.createTask({
name: 'Follow up call',
taskType: 'call',
date: '2026-02-15T10:00:00Z',
assignTo: '[email protected]',
done: false
});
// Get task by ID
const task = await tasksApi.getTask('task_xyz789');
// Update task
await tasksApi.updateTask('task_xyz789', {
done: true,
notes: 'Customer agreed to upgrade tier'
});
// Delete task
await tasksApi.deleteTask('task_xyz789');
// List tasks with filtering
const tasks = await tasksApi.getTasks({
filters: {
done: false,
taskType: 'call',
assignTo: '[email protected]'
},
sort: 'date:asc',
limit: 50
});

Best Practices

  1. Automate task creation: Link tasks to deal stage changes for consistent follow-up
  2. Set reminders: Always configure reminders for time-sensitive tasks
  3. Link records: Associate tasks with deals, companies, and contacts for context
  4. Track completion: Monitor task completion rates for team performance insights
  5. Use task types: Categorize tasks properly for accurate activity reporting

Error Handling

try {
const task = await tasksApi.createTask(taskData);
console.log('Task created:', task.id);
} catch (error) {
if (error.status === 400) {
console.error('Invalid task data:', error.message);
} else if (error.status === 404) {
console.error('Associated deal or contact not found');
} else {
console.error('Unexpected error:', error);
}
}

Next Steps

Ajukan akses awal

Masukkan nama depan serta email atau nomor telepon Anda. Kami akan menghubungi Anda dengan detail akses Tajo.

deteksi otomatis
Asisten AI

Halo! Tanyakan apa saja tentang dokumentasi.