Notes Management
The Brevo CRM Notes API enables you to document customer interactions, meeting summaries, and important details associated with contacts, companies, and deals within the Tajo platform.
Overview
Notes management is essential for:
- Interaction history documenting customer conversations and meeting outcomes
- Team collaboration sharing context about accounts across your sales team
- Deal documentation recording negotiation details and decisions
- Loyalty program notes tracking customer preferences and program feedback
- Compliance records maintaining audit trails for customer communications
Quick Start
Create Note
POST https://api.brevo.com/v3/crm/notesContent-Type: application/jsonapi-key: YOUR_API_KEY
{ "text": "Met with Acme Corp to discuss enterprise loyalty program upgrade. They're interested in Diamond tier benefits and want to consolidate all 12 locations under a single account. Key decision maker is VP of Operations. Follow up with volume discount proposal by end of week.", "contactIds": [12345], "dealIds": ["deal_abc123def456"], "companyIds": ["comp_123456789"]}Response
{ "id": "note_001", "text": "Met with Acme Corp to discuss enterprise loyalty program upgrade...", "contactIds": [12345], "dealIds": ["deal_abc123def456"], "companyIds": ["comp_123456789"], "created_at": "2026-01-25T14:30:00Z", "updated_at": "2026-01-25T14:30:00Z"}Get Notes
List All Notes
GET https://api.brevo.com/v3/crm/notes?limit=50&offset=0&sort=descContent-Type: application/jsonapi-key: YOUR_API_KEYResponse
{ "items": [ { "id": "note_001", "text": "Met with Acme Corp to discuss enterprise loyalty program upgrade...", "contactIds": [12345], "dealIds": ["deal_abc123def456"], "companyIds": ["comp_123456789"], "created_at": "2026-01-25T14:30:00Z" } ], "total": 1}Filter Notes
GET https://api.brevo.com/v3/crm/notes?filters[companyIds]=comp_123456789&sort=created_at:descGet Single Note
GET https://api.brevo.com/v3/crm/notes/{note_id}Content-Type: application/jsonapi-key: YOUR_API_KEYAutomated Note Creation
Activity-Based Notes
Create notes automatically from CRM activities:
class NoteAutomation { constructor() { this.notesApi = new NotesApi(); }
async logDealStageChange(deal, oldStage, newStage) { const noteText = [ `Deal stage changed: ${oldStage} → ${newStage}`, `Deal value: $${deal.attributes.amount?.toLocaleString()}`, `Probability: ${deal.attributes.probability}%`, newStage === 'Closed Won' ? `Loyalty points awarded: ${deal.attributes.loyalty_points_bonus}` : '', `Updated by: ${deal.attributes.deal_owner}` ].filter(Boolean).join('\n');
return await this.notesApi.createNote({ text: noteText, dealIds: [deal.id], companyIds: deal.attributes.company_id ? [deal.attributes.company_id] : [], contactIds: deal.attributes.contact_id ? [deal.attributes.contact_id] : [] }); }
async logLoyaltyTierChange(company, oldTier, newTier) { const noteText = [ `Loyalty tier upgraded: ${oldTier} → ${newTier}`, `Annual spend: $${company.attributes.annual_spend?.toLocaleString()}`, `New benefits: ${this.getTierBenefits(newTier).join(', ')}`, `Account manager notified: ${company.attributes.account_manager}` ].join('\n');
return await this.notesApi.createNote({ text: noteText, companyIds: [company.id] }); }
async logCustomerFeedback(contactId, feedback) { const noteText = [ `Customer feedback received:`, `Category: ${feedback.category}`, `Rating: ${feedback.rating}/5`, `Comment: ${feedback.comment}`, feedback.loyaltyRelated ? `Loyalty program feedback: ${feedback.loyaltyComment}` : '' ].filter(Boolean).join('\n');
return await this.notesApi.createNote({ text: noteText, contactIds: [contactId] }); }}Meeting Summary Notes
class MeetingNotes { async createMeetingSummary(meetingData) { const noteText = [ `Meeting: ${meetingData.title}`, `Date: ${new Date(meetingData.date).toLocaleDateString()}`, `Attendees: ${meetingData.attendees.join(', ')}`, '', '## Discussion Points', ...meetingData.topics.map(t => `- ${t}`), '', '## Action Items', ...meetingData.actions.map(a => `- [ ] ${a.description} (${a.assignee}, due ${a.dueDate})`), '', '## Next Steps', meetingData.nextSteps ].join('\n');
return await this.notesApi.createNote({ text: noteText, contactIds: meetingData.contactIds || [], dealIds: meetingData.dealIds || [], companyIds: meetingData.companyIds || [] }); }}API Methods Reference
// Create a noteconst note = await notesApi.createNote({ text: 'Customer interested in premium loyalty tier', contactIds: [12345], dealIds: ['deal_abc123']});
// Get note by IDconst note = await notesApi.getNote('note_001');
// Update noteawait notesApi.updateNote('note_001', { text: 'Updated: Customer confirmed interest in premium loyalty tier. Meeting scheduled for next week.'});
// Delete noteawait notesApi.deleteNote('note_001');
// List notes with filteringconst notes = await notesApi.getNotes({ filters: { companyIds: 'comp_123456789' }, sort: 'created_at:desc', limit: 50});Best Practices
- Be specific: Include relevant details like amounts, dates, and next steps
- Link records: Associate notes with all related contacts, deals, and companies
- Automate logging: Create notes automatically for stage changes and key events
- Use consistent format: Adopt a team-wide note structure for meeting summaries
- Timely documentation: Create notes immediately after interactions while details are fresh
Error Handling
try { const note = await notesApi.createNote(noteData); console.log('Note created:', note.id);} catch (error) { if (error.status === 400) { console.error('Invalid note data:', error.message); } else if (error.status === 404) { console.error('Associated contact, deal, or company not found'); } else { console.error('Unexpected error:', error); }}Next Steps
- Companies Management - Manage corporate accounts
- Deals Management - Track sales pipeline
- Task Management - Manage sales activities
- Files - Manage deal attachments