Manajemen tugas
Tasks API dari Brevo CRM memungkinkan Anda membuat dan mengelola aktivitas penjualan, tindak lanjut, dan pengingat agar tim Anda tetap terorganisasi di dalam platform Tajo.
Ikhtisar
Manajemen tugas penting untuk:
- Tindak lanjut penjualan dengan pengingat otomatis dan tenggat waktu
- Koordinasi tim dengan menugaskan aktivitas ke anggota tim tertentu
- Kemajuan deal dengan mengaitkan tugas ke deal dan perusahaan
- Pelacakan aktivitas untuk memantau produktivitas tim dan tingkat penyelesaian
- Keterlibatan pelanggan dengan menjadwalkan outreach program loyalitas dan check-in
Mulai cepat
Membuat tugas
POST https://api.brevo.com/v3/crm/tasksContent-Type: application/jsonapi-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", "companiesIds": ["comp_123456789"], "dealsIds": ["deal_abc123def456"], "contactsIds": [12345], "done": false, "reminder": { "value": 15, "unit": "minutes" }}Respons
{ "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"}Mengambil tugas
Menampilkan semua tugas
GET https://api.brevo.com/v3/crm/tasks?limit=50&offset=0&sort=descContent-Type: application/jsonapi-key: YOUR_API_KEYRespons
{ "items": [ { "id": "task_xyz789", "name": "Follow up on Enterprise Loyalty proposal", "taskType": "call", "date": "2026-02-15T10:00:00Z", "duration": 1800, "done": false, "companiesIds": ["comp_123456789"], "dealsIds": ["deal_abc123def456"], "created_at": "2026-01-25T14:30:00Z" } ], "total": 1}Memfilter tugas
GET https://api.brevo.com/v3/crm/tasks?filters[done]=false&filters[taskType]=call&sort=date:ascMengambil satu tugas
GET https://api.brevo.com/v3/crm/tasks/{task_id}Content-Type: application/jsonapi-key: YOUR_API_KEYJenis tugas
CRM mendukung beberapa jenis tugas untuk aktivitas penjualan yang berbeda:
| Jenis | Deskripsi | Contoh penggunaan |
|---|---|---|
call | Panggilan telepon | Panggilan tindak lanjut, demo, check-in |
email | Outreach lewat email | Proposal, pembaruan, newsletter |
meeting | Rapat tatap muka atau virtual | Demo, negosiasi, tinjauan |
todo | Tugas umum | Pekerjaan internal, riset, persiapan |
deadline | Tugas dengan batas waktu | Perpanjangan kontrak, milestone |
Pembuatan tugas otomatis
Otomatisasi tugas berbasis deal
Buat tugas secara otomatis ketika deal bergerak antar tahap:
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' } }); }}Operasi tugas massal
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; }}Referensi metode API
// Create a new taskconst task = await tasksApi.createTask({ name: 'Follow up call', taskType: 'call', date: '2026-02-15T10:00:00Z', done: false});
// Get task by IDconst task = await tasksApi.getTask('task_xyz789');
// Update taskawait tasksApi.updateTask('task_xyz789', { done: true, notes: 'Customer agreed to upgrade tier'});
// Delete taskawait tasksApi.deleteTask('task_xyz789');
// List tasks with filteringconst tasks = await tasksApi.getTasks({ filters: { done: false, taskType: 'call', }, sort: 'date:asc', limit: 50});Praktik terbaik
- Otomatiskan pembuatan tugas: kaitkan tugas dengan perubahan tahap deal agar tindak lanjut berjalan konsisten
- Atur pengingat: selalu konfigurasikan pengingat untuk tugas yang terikat waktu
- Kaitkan record: hubungkan tugas dengan deal, perusahaan, dan kontak agar konteksnya jelas
- Pantau penyelesaian: awasi tingkat penyelesaian tugas untuk memahami performa tim
- Gunakan jenis tugas: kategorikan tugas dengan tepat agar pelaporan aktivitas akurat
Penanganan error
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); }}Langkah berikutnya
- Manajemen perusahaan - Kelola akun korporat
- Manajemen deal - Pantau sales pipeline
- Catatan - Dokumentasikan interaksi pelanggan
- File - Kelola lampiran deal