Διαχείριση αρχείων
Το Files API του Brevo CRM σάς επιτρέπει να ανεβάζετε και να διαχειρίζεστε συνημμένα αρχεία που συνδέονται με επαφές, εταιρείες και συμφωνίες μέσα στην πλατφόρμα Tajo.
Επισκόπηση
Η διαχείριση αρχείων είναι απαραίτητη για τα εξής:
- Τεκμηρίωση συμφωνιών, αποθήκευση προσφορών, συμβάσεων και συμφωνητικών
- Αρχεία πελατών, επισύναψη τιμολογίων, αποδείξεων και αλληλογραφίας
- Υλικό προγράμματος πιστότητας, κοινή χρήση λεπτομερειών του προγράμματος και συνόψεων παροχών
- Συμμόρφωση, διατήρηση ιχνών ελέγχου εγγράφων για εταιρικούς λογαριασμούς
- Συνεργασία ομάδας, κοινή χρήση πόρων μεταξύ των μελών της ομάδας πωλήσεων
Γρήγορη εκκίνηση
Ανέβασμα αρχείου
POST https://api.brevo.com/v3/crm/filesContent-Type: multipart/form-dataapi-key: YOUR_API_KEY
--boundaryContent-Disposition: form-data; name="file"; filename="enterprise-proposal.pdf"Content-Type: application/pdf
[file content]--boundaryContent-Disposition: form-data; name="dealIds"
deal_abc123def456--boundaryContent-Disposition: form-data; name="companyIds"
comp_123456789--boundaryContent-Disposition: form-data; name="contactIds"
12345--boundary--Απόκριση
{ "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"}Ανάκτηση αρχείων
Λίστα όλων των αρχείων
GET https://api.brevo.com/v3/crm/files?limit=50&offset=0&sort=descContent-Type: application/jsonapi-key: YOUR_API_KEYΑπόκριση
{ "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}Φιλτράρισμα αρχείων
GET https://api.brevo.com/v3/crm/files?filters[dealIds]=deal_abc123def456&sort=created_at:descΑνάκτηση μεμονωμένου αρχείου
GET https://api.brevo.com/v3/crm/files/{file_id}Content-Type: application/jsonapi-key: YOUR_API_KEYΛήψη αρχείου
GET https://api.brevo.com/v3/crm/files/{file_id}/dataapi-key: YOUR_API_KEYΑυτοματοποίηση της διαχείρισης αρχείων
Ροή εργασίας εγγράφων συμφωνίας
Διαχειριστείτε αυτόματα τα έγγραφα σε όλη τη διάρκεια του κύκλου ζωής μιας συμφωνίας:
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) }; }}Έγγραφα προγράμματος πιστότητας
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; }}Υποστηριζόμενοι τύποι αρχείων
| Κατηγορία | Επεκτάσεις | Μέγιστο μέγεθος |
|---|---|---|
| Έγγραφα | .pdf, .doc, .docx, .txt | 10 MB |
| Υπολογιστικά φύλλα | .xls, .xlsx, .csv | 10 MB |
| Εικόνες | .png, .jpg, .jpeg, .gif | 5 MB |
| Παρουσιάσεις | .ppt, .pptx | 10 MB |
Αναφορά μεθόδων του API
// Upload a fileconst file = await filesApi.uploadFile({ file: fileBuffer, fileName: 'proposal.pdf', dealIds: ['deal_abc123'], companyIds: ['comp_123']});
// Get file metadataconst file = await filesApi.getFile('file_001');
// Download file dataconst fileData = await filesApi.downloadFile('file_001');
// Delete fileawait filesApi.deleteFile('file_001');
// List files with filteringconst files = await filesApi.getFiles({ filters: { dealIds: 'deal_abc123' }, sort: 'created_at:desc', limit: 50});Βέλτιστες πρακτικές
- Συμβάσεις ονομασίας: Χρησιμοποιήστε περιγραφικά ονόματα αρχείων με ημερομηνίες για εύκολη αναγνώριση
- Σύνδεση εγγραφών: Συσχετίστε τα αρχεία με όλες τις σχετικές συμφωνίες, εταιρείες και επαφές
- Διαχείριση εκδόσεων: Συμπεριλάβετε αριθμούς έκδοσης ή ημερομηνίες στα ονόματα των αρχείων
- Διαχείριση μεγέθους: Συμπιέστε τα μεγάλα αρχεία πριν από το ανέβασμα
- Έλεγχος πρόσβασης: Ελέγχετε τακτικά τις συσχετίσεις των αρχείων ώστε να διασφαλίζεται η σωστή πρόσβαση
- Εκκαθάριση: Αφαιρέστε τα παρωχημένα έγγραφα ώστε οι εγγραφές του CRM να παραμένουν διαχειρίσιμες
Διαχείριση σφαλμάτων
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); }}Επόμενα βήματα
- Διαχείριση εταιρειών, διαχειριστείτε εταιρικούς λογαριασμούς
- Διαχείριση συμφωνιών, παρακολουθήστε τη διοχέτευση πωλήσεων
- Διαχείριση εργασιών, διαχειριστείτε τις δραστηριότητες πωλήσεων
- Σημειώσεις, τεκμηριώστε τις αλληλεπιδράσεις με τους πελάτες