Demandez un accès anticipé

Indiquez votre prénom ainsi qu’une adresse e-mail ou un numéro de téléphone. Nous vous recontacterons pour vous communiquer les modalités d’accès à Tajo.

Gestion des fichiers

L’API Files du CRM Brevo vous permet d’importer et de gérer les pièces jointes associées aux contacts, aux entreprises et aux transactions au sein de la plateforme Tajo.

Vue d’ensemble

La gestion des fichiers est essentielle pour :

  • Documentation des transactions conserver les propositions, les contrats et les accords
  • Dossiers clients joindre les factures, les reçus et la correspondance
  • Supports du programme de fidélité partager les détails du programme et les récapitulatifs d’avantages
  • Conformité conserver les pistes d’audit documentaires des comptes d’entreprise
  • Collaboration d’équipe partager les ressources entre les membres de l’équipe commerciale

Démarrage rapide

Importer un fichier

POST https://api.brevo.com/v3/crm/files
Content-Type: multipart/form-data
api-key: YOUR_API_KEY
--boundary
Content-Disposition: form-data; name="file"; filename="enterprise-proposal.pdf"
Content-Type: application/pdf
[file content]
--boundary
Content-Disposition: form-data; name="dealIds"
deal_abc123def456
--boundary
Content-Disposition: form-data; name="companyIds"
comp_123456789
--boundary
Content-Disposition: form-data; name="contactIds"
12345
--boundary--

Réponse

{
"id": "file_001",
"name": "enterprise-proposal.pdf",
"size": 245760,
"contentType": "application/pdf",
"dealIds": ["deal_abc123def456"],
"companyIds": ["comp_123456789"],
"contactIds": [12345],
"created_at": "2026-01-25T14:30:00Z"
}

Récupérer les fichiers

Lister tous les fichiers

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

Réponse

{
"items": [
{
"id": "file_001",
"name": "enterprise-proposal.pdf",
"size": 245760,
"contentType": "application/pdf",
"dealIds": ["deal_abc123def456"],
"companyIds": ["comp_123456789"],
"created_at": "2026-01-25T14:30:00Z"
}
],
"total": 1
}

Filtrer les fichiers

GET https://api.brevo.com/v3/crm/files?filters[dealIds]=deal_abc123def456&sort=created_at:desc

Récupérer un fichier

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

Télécharger un fichier

GET https://api.brevo.com/v3/crm/files/{file_id}/data
api-key: YOUR_API_KEY

Automatisation de la gestion des fichiers

Workflow documentaire des transactions

Gérez automatiquement les documents tout au long du cycle de vie d’une transaction :

class DealDocumentManager {
constructor() {
this.filesApi = new FilesApi();
}
async attachProposal(dealId, proposalBuffer, companyName) {
const fileName = `proposal-${companyName.toLowerCase().replace(/\s+/g, '-')}-${Date.now()}.pdf`;
const file = await this.filesApi.uploadFile({
file: proposalBuffer,
fileName: fileName,
dealIds: [dealId]
});
// Create a note referencing the uploaded proposal
await this.notesApi.createNote({
text: `Proposal uploaded: ${fileName}`,
dealIds: [dealId]
});
return file;
}
async attachContract(dealId, contractBuffer, companyId) {
const fileName = `contract-${dealId}-${new Date().toISOString().slice(0, 10)}.pdf`;
const file = await this.filesApi.uploadFile({
file: contractBuffer,
fileName: fileName,
dealIds: [dealId],
companyIds: [companyId]
});
return file;
}
async getDealDocuments(dealId) {
const files = await this.filesApi.getFiles({
filters: { dealIds: dealId },
sort: 'created_at:desc'
});
return {
proposals: files.items.filter(f => f.name.startsWith('proposal-')),
contracts: files.items.filter(f => f.name.startsWith('contract-')),
other: files.items.filter(f =>
!f.name.startsWith('proposal-') && !f.name.startsWith('contract-')
),
totalSize: files.items.reduce((sum, f) => sum + f.size, 0)
};
}
}

Documents du programme de fidélité

class LoyaltyDocumentManager {
async generateAndAttachBenefitsSummary(companyId, tier) {
const company = await this.companiesApi.getCompany(companyId);
const summary = await this.generateBenefitsPDF({
companyName: company.name,
tier: tier,
benefits: this.getTierBenefits(tier),
annualSpend: company.attributes.annual_spend,
pointsBalance: company.attributes.loyalty_points
});
return await this.filesApi.uploadFile({
file: summary,
fileName: `loyalty-benefits-${tier.toLowerCase().replace(/\s+/g, '-')}.pdf`,
companyIds: [companyId]
});
}
async attachTierUpgradeDocuments(companyId, oldTier, newTier) {
const documents = [
{ name: 'tier-upgrade-confirmation', content: this.generateUpgradeConfirmation(oldTier, newTier) },
{ name: 'new-benefits-guide', content: this.generateBenefitsGuide(newTier) }
];
const uploaded = [];
for (const doc of documents) {
const file = await this.filesApi.uploadFile({
file: doc.content,
fileName: `${doc.name}-${Date.now()}.pdf`,
companyIds: [companyId]
});
uploaded.push(file);
}
return uploaded;
}
}

Types de fichiers pris en charge

CatégorieExtensionsTaille maximale
Documents.pdf, .doc, .docx, .txt10 Mo
Feuilles de calcul.xls, .xlsx, .csv10 Mo
Images.png, .jpg, .jpeg, .gif5 Mo
Présentations.ppt, .pptx10 Mo

Référence des méthodes de l’API

// Upload a file
const file = await filesApi.uploadFile({
file: fileBuffer,
fileName: 'proposal.pdf',
dealIds: ['deal_abc123'],
companyIds: ['comp_123']
});
// Get file metadata
const file = await filesApi.getFile('file_001');
// Download file data
const fileData = await filesApi.downloadFile('file_001');
// Delete file
await filesApi.deleteFile('file_001');
// List files with filtering
const files = await filesApi.getFiles({
filters: { dealIds: 'deal_abc123' },
sort: 'created_at:desc',
limit: 50
});

Bonnes pratiques

  1. Conventions de nommage : utilisez des noms de fichiers descriptifs avec des dates pour les identifier facilement
  2. Reliez les enregistrements : associez les fichiers à toutes les transactions, entreprises et contacts concernés
  3. Gestion des versions : intégrez un numéro de version ou une date dans le nom du fichier
  4. Gestion de la taille : compressez les fichiers volumineux avant de les importer
  5. Contrôle des accès : vérifiez régulièrement les associations de fichiers pour garantir des accès appropriés
  6. Faites le ménage : supprimez les documents obsolètes pour garder des enregistrements CRM exploitables

Gestion des erreurs

try {
const file = await filesApi.uploadFile(fileData);
console.log('File uploaded:', file.id);
} catch (error) {
if (error.status === 400) {
console.error('Invalid file data:', error.message);
} else if (error.status === 413) {
console.error('File size exceeds maximum limit');
} else if (error.status === 415) {
console.error('Unsupported file type');
} else {
console.error('Unexpected error:', error);
}
}

Prochaines étapes

Demandez un accès anticipé

Indiquez votre prénom ainsi qu’une adresse e-mail ou un numéro de téléphone. Nous vous recontacterons pour vous communiquer les modalités d’accès à Tajo.

détection automatique
Assistant AI

Bonjour ! Posez-moi vos questions sur la documentation.