Google Drive Odoo Integration v.10
The tool to automatically synchronize Odoo attachments with Google Drive files in both ways
Synchronization is bilateral. All Odoo attachments are put in Google Drive regularly. Google Drive files create attachments in Odoo in case they are placed in a correct folder. Look at the sections From Odoo to Google Drive and From Google Drive to Odoo
Integration is automatic in both ways. Based on scheduled jobs, Odoo send attachments to Google Drive and retrieve files from there
Any Odoo document might be synced: customers, opportunities, sale or purchase orders, tasks or issues, employees or users, etc. You decide by your own which records should be in Google Drive, and which should be left in Odoo
Synchronization works both for individual drives and team drives (Google Suite business and enterprise tariffs). In the latter case the root folder Odoo is place within a chosen team drive, in the first case - within a current user drive
All synced files are easily accessible though clicking on an attachment. Odoo automatically redirects you to a file previewer. Among others it might be Google Documents and Google Spreadsheets. Besides, you might open a whole document folder by clicking on 'Open folder' on the attachment widget
All sync activities might be logged. Control over files and folders creations, moves, name changes and removals. Just turn on the option 'Log sync activities' and access history through the button 'Sync logs'
The tool is compatible with Odoo reporting and mailing apps. If such an app faces a synced file, it retrieves a real content from Google Drive. In particular, the reports 'always reload' feature and messages & mass mailing attachments work properly
Integration is based on a single user endpoint. It means that you should login in Google Drive only once. Afterwards for integrations Odoo would use that credentials disregarding an actual Odoo user. Make sure, however, that real Odoo users have an access to Google Drive to open URLs linked to their attachments
- Prepare and keep updated folders' structure in Google Drive
- Upload new attachments to a correct folder
Odoo creates a convenient directory structure in Google Drive: Odoo / Document type name / Document name / Files, where:
- Odoo is a central directory for Odoo Sync in your Drive.
- Document type is a synced Odoo model, for example, 'Sale orders', 'Opportunities', 'Customers'
- You select document types by yourself. It might be any document type
- Moreover, you might have a few folders for a single document type. Use Odoo domains to have not global 'Partners, but 'Customers' and 'Suppliers', not just 'Sale orders' but 'Commercial offers', 'To deliver', and 'Done orders'
- With each sync Odoo would try to update document types' folders. Add a new document type at any moment. It will appear in Google Drive with a next sync
- You are welcome to introduce or change document types folder names at any moment in Odoo. Take into account: renaming in Google Drive will be recovered to Odoo names
- If you remove a model from integration, it will not be deleted from Google Drive to keep already synced files safe. However, new documents of this type would not be synced
- In case you removed a directory in Google Drive, but it is still configured in Odoo, with a next sync a folder structure is going to be recovered (not files, surely).
- Document is an exact object to sync. For instance, 'Agrolait' or 'SO019'
- Documents are synced in case they relate to a synced document type and satisfy its filters. For example, you are not obliged to sync all partners, you may integrate only 'Customers' and 'Vendors' or only 'Companies', not 'Contacts'
- Odoo would generate a folder in Google Drive for each suitable document even for documents without attachments. It is needed for a backward sync to easily add new files
- Google Drive folder name equals a real document name. It relies upon Odoo name_get method. Thus, Odoo 'Michael Fletcher' (a contact of 'Agrolait') would be Google Drive 'Agrolait, Michael Fletcher'
- If an exact document changes its document type (e.g. a quotation is now confirmed), Odoo will automatically relocate its related folder to a proper parent directory (in the example: from 'Commercial offers' to 'To deliver')
- In case a document relates to a few types (for instance, you have 'Vendors' and 'Customers', while Agrolait is both), this document folder would be put into the most prioritized document type. A document type priority is higher as closer to the top in Odoo interfaces it is
- If an Odoo document is removed, the next sync will remove a corresponding Google Drive directory
- In case you remove a directory in Google Drive, but it still exists in Odoo, Google Drive folder structure would be recovered (while files would be unlinked in both Odoo and Google Drive)
- Folders renaming in Google Drive will be replaced with Odoo names, Odoo document names are more important
- Files are real files taken from Odoo attachments
The resulted path would be, for example, 'Odoo / Quotations / SO019 / commercial offer.png'.
The only exclusion of the rule are stand alone attachments which do not relate to any Odoo documents (their document type is 'ir.attachment'). Such attachments' path is 'Odoo / Stand Alone Attachments / image.png'.
The very first sync might take quite a long, since a lot of folders should be created. Afterwards, it would be much faster. However, it is not recommended to make sync too frequent: once an hour seems quite good for large files.
FilesWith each direct sync, Odoo tries to find not yet synced attachments. If such attachments suit any document type to sync, a file will be uploaded to Google Drive to a proper folder. In Odoo such attachments will become of 'url' type. It means that a file is not any more kept in Odoo server space, but now it is in Google Drive. Until sync is done, Odoo attachment remains binary and stores an actual file. Such approach helps Odoo to work faster.
Clicking on such attachment leads you to a file previewer / editor in Google Drive. Depending on your Google Drive configurations it might be Google Documents, Google Spreadsheets, PDF previewer, etc. Anyway changes to file contents in Google Drive are available in Odoo at the same moment.
If you unlinked an attachment from Odoo, it would be deleted in Google Drive as well.
Take into account that file names should be managed in Google Drive: each backward sync would recover Google Drive names, Odoo is here less important.
- If a new file is added to a proper document folder (e.g. to 'Odoo / Customers / Agrolait'), the same attachment will be added to Odoo document (in the example - to 'Agrolait')
- In document folders you can put not only files but also child folders. In that case a link for this folder (not its content) is kept in attachments
- In case you rename a file in Google Drive, it will be renamed in Odoo as well
- Files' removal from Google Drive leads to related Odoo attachments' removal
- If you move a file to another document folder, in Odoo a related attachment would be re-attached to this new document. Take into account: if you move a file for a not document folder, in Odoo attachment will be deleted as it has been removed from Google Drive
- If you deleted a document type or a document folder, their child files are deleted as well. Thus, Odoo would remove related attachments. The folders, however, will be recovered with a next direct sync. Folders' move to another directory is also considered as a removal. Avoid such situations by following the simple rule: folders are managed mostly by Odoo, files - mostly by Google Drive.
Backward Google Drive sync might take quite much time, since each folder should be checked (the more folders, the more time the backward sync requires). It is recommended to make frequency oftener than once an hour or two hours.
- Take into account that files or folders deleted in Google Drive are really deleted only when you clean trash. Otherwise, such files still exist and would be reflected in Odoo
- Try to avoid the following symbols in folders' and files' names: *, ?, ", ', :, <, >, |, +, %, !, @, \, /,. Direct sync will replace such symbols with '-'. It is done to avoid conflicts with file systems.
Login and Google Drive Credentials
- Go to the Google Cloud Console via the URL https://console.cloud.google.com
- Select or create a project
- After the project is selected, the console opens the Google Auth Platform. Press 'Get Started'
- Add app information
- As an app name select any suitable
- As a user support email select your email address
- Press 'Next'
- As the audience select 'External' and press 'Next'. Note: you are anyway going to use this app only for your own Odoo connection
- As the contact information enter your Google or Google Workspace email address and press 'Next'
- Agree with the Google API Services User Data Policy, press 'Continue', and then press 'Create'
- Go to 'Clients' and press 'Create client'
- As the application type select 'Web application'
- As a name select any suitable
- As the authorized redirect URI, add the link in a format [YOURODOOSITENAME]/google_drive_token (e.g. https://odootools.com/google_drive_token).
- Press 'Create'
- Copy and safely store 'Client ID' and 'Client secret'. The client secret is shown only once
- Enable the Google Drive API for this project: type 'Google Drive API' in the top search box, open the found product, and press 'Enable'
- Go to 'Audience' and add your email address as a test user
- Publish the app. Otherwise, the app stays in the testing state and its token expires every 7 days
- Open 'Branding' and fill in the application home page and the application privacy policy link (for example, the links to your Odoo website). Add the domains of those links as the authorized domains
- Open 'Audience' and press 'Publish app'
- Do not upload an app logo. This would invoke a long and complex Google verification process that is of no actual need to you
- Go to the Odoo Google Drive Settings
- Copy 'Client ID' from step 8 into the field 'App Client ID'
- Copy 'Client secret' from step 8 into the field 'App Secret Key'
- Insert the redirect URL you entered in step 8
- If you use team drives, check the related box. Make sure you really use team drives. In you Google Drive you should find the item 'Team Drives' in the left sidebar. This feature is available only for business and enterprise tariffs
- If the option 'Team Drive' is enabled, introduce its name. It should be absolutely the same as you see it in your Google Drive. Make sure that your user has full rights for this team drive
- Press 'Save'
- Press 'Login and Confirm'. Odoo redirects you to Google login page. Check in, agree with all conditions, and grant permissions asked
- After login, Google redirects you back to Odoo. Google Drive - Odoo synchronization is ready to be done.
Open the Google Auth Platform
Add app information
Select the external audience
Add contact information
Agree with the policies and create the app
Create an OAuth client
Configure the web application client
Copy the client ID and client secret
Find the Google Drive API
Enable the Google Drive API
Fill in branding to publish the app
Add test users and publish the app
Scheduled jobs
- Turn on debug mode
- Go to technical settings > Automation > Scheduled jobs
- Find the jobs 'Synchronize attachments with cloud' and 'Update attachments from cloud'
Soalan lazim tentang Google Drive Odoo Integration Odoo v.10
Adakah folder Google Drive yang dijana dikongsi secara automatik antara pengguna Odoo?
Aplikasi sendiri tidak mengawal hak akses di sisi Google Drive. Ia perlu dilakukan secara manual di situ. Odoo mencipta folder sasaran di Google Drive, yang secara lalai tidak dikongsi, manakala kebenaran boleh diubah untuk mana-mana folder. Contohnya, hak penuh untuk direktori 'Odoo' atau untuk 'Odoo > Sale Orders' atau 'Odoo > Sale Orders > SO-001'.
Aplikasi berfungsi dengan prinsip satu titik akhir pengguna. Semua operasi segerak dilakukan di bawah pengguna Google Drive yang sama (mengikut aplikasi Google API yang anda konfigurasi).
Saya memadam fail dalam Google Drive tetapi ia masih dalam Odoo
Untuk memadam fail sepenuhnya, kosongkan juga tong sampah di Google Drive.
Juga, fail mungkin masih dalam Odoo kerana penyegerakan undur belum memproses lampiran. Ini proses berjadual, masa diperlukan.
Adakah Google akan caj berdasarkan permintaan API?
Modul hanya menggunakan API percuma, jadi Google tidak akan mengenakan caj.
Bolehkah saya menukar kekerapan kerja penyegerakan?
Ya, anda boleh. Untuk itu:
Hidupkan mod nyahpepijat
Pergi ke tetapan teknikal > Automasi > Kerja berjadual
Cari kerja 'Synchronize attachments with cloud' dan 'Update attachments from cloud'.
Jangan jadikannya terlalu kerap. Lebih baik kerja ini siap sebelum yang seterusnya bermula. Konfigurasi bergantung pada berapa banyak item yang perlu disegerakkan. Biasanya kekerapan adalah antara 15 minit hingga 4 jam.
Pastikan juga anda menetapkan had masa yang mencukupi dalam fail konfigurasi Odoo. Parameter LIMIT_TIME_CPU dan LIMIT_TIME_REAL mestilah sama atau lebih besar daripada masa kerja cron yang dirancang. Bermula versi 13, pertimbangkan juga parameter LIMIT_TIME_REAL_CRON.
Nota penting untuk klien Odoo.sh: masa maksimum kerja cron mungkin ditetapkan 15 minit sahaja.
Bolehkah saya konfigur struktur direktori disegerak yang berbeza daripada yang diandaikan oleh segerak?
Tidak, ciri ini hanya tersedia dari versi 15. Sebelum versi itu, modul berfungsi dengan struktur folder yang telah ditetapkan:
Odoo - folder teras untuk segerak
Models - folder untuk setiap jenis dokumen Odoo. Contohnya, 'Projects', 'Partners'. Dibeza mengikut domain, mungkin ada folder yang lebih khusus: cth., 'Customer 1 Projects', 'Projects of the Customer 2', 'Internal Projects', dll.
Objects - folder untuk setiap dokumen, cth. 'Project 1' atau 'Customer 1'
Fail dan folder berkaitan dokumen Odoo ini yang akan disegerakkan.
Hasilnya, anda mungkin mempunyai contohnya:
Odoo / Projects / Project 1 / fail dan folder berkaitan project 1
Odoo / Customer 1 Projects / Project 1; Odoo / Customer 2 Projects / Project 3, ...
Odoo / Customers / Customer 1 / fail dan folder berkaitan customer 1
Struktur ini sentiasa rata, bermaksud hanya ada tahap hierarki tersebut. Jadi betul bahawa pelbagai jenis dokumen tidak boleh berada dalam struktur yang sama. Dalam folder 'Customer 1' kita tidak boleh menyimpan fail yang berkaitan sekaligus dengan pesanan jualan, invois dan projek. Setiap jenis dokumen itu mempunyai folder sendiri (atau beberapa folder sendiri). Jika tidak, kita tidak dapat membuat segerak undur kerana tiada kriteria untuk dipegang.
Perlukah saya sediakan akses pengguna tertentu dalam Odoo?
Tidak, alat bergantung pada satu titik akhir pengguna. Semua proses penyegerakan dilakukan di bawah satu pentadbir awan (aplikasi). Hak akses folder / fail yang dicipta tidak diautomasikan. Anda harus mentadbir hak itu dalam penyelesaian storan awan.
Medan disegerak disimpan di mana? Adakah ia diduplikasikan ke Odoo dan clouds?
Aplikasi mengandaikan kandungan binari lampiran disimpan dalam Cloud Client, bukan pada pelayan Odoo. Lampiran sedemikian dalam Odoo menjadi jenis URL, dan anda boleh membukanya pada bila-bila masa dari kotak lampiran atau dari Cloud Client.
Selepas persediaan, tiada tindakan manual diperlukan kerana penyegerakan sepenuhnya automatik. Tentukan jenis dokumen Odoo yang perlu disegerakkan dan sediakan model berkaitan untuk setiap satunya (Pelanggan, pesanan jualan atau belian, Tugasan, Projek, dll.).
Bolehkah saya mempunyai beberapa folder untuk jenis dokumen yang sama? Contohnya, projek dalaman dan projek pelanggan?
Ya, anda boleh. Untuk itu sediakan peraturan untuk setiap satu, kemudian gunakan penapis: contohnya mengikut jenis projek.
Cuba jadikan penapis saling eksklusif supaya dokumen dapat ditetapkan dengan pasti. Contohnya 'pelanggan tetapi bukan pembekal', 'pembekal tetapi bukan pelanggan'. Jika tidak, folder dokumen tertentu akan meloncat dari satu model ke model lain.
Adakah saya hanya memerlukan aplikasi Cloud Storage Solution?
Tidak, alat ini hanya teras teknikal. Anda juga memerlukan penyambung untuk cloud client anda.
Adakah tidak mengapa jika saya ada banyak objek untuk disegerakkan, contohnya 10000?
Ya, walaupun jika banyak folder/lampiran perlu disegerakkan prosesnya mungkin perlahan. Pada masa yang sama, pelanggan melaporkan persekitaran dengan >10k rakan dan ~5k varian produk untuk disegerakkan, dan prosesnya masih diterima.
Beberapa perkara yang perlu ditekankan:
- Penyegerakan dibina supaya setiap item disegerakkan dan tidak hilang, walaupun mungkin tidak pantas. Ini dijamin oleh baris gilir first-in-first-out dan setiap kerja yang dikomit.
- Bilangan objek boleh dihadkan secara logik. Konfigurasi model membolehkan anda menyekat penyegerakan item lapuk (cth. tiada gunanya menyegerakkan rakan yang diarkibkan atau pesanan 2 tahun lalu).
Bolehkah penyegerakan dibuat masa nyata?
Tidak. Kami mempunyai alasan kukuh untuk mengelak penyegerakan masa nyata:
Isu prestasi. Jika penyegerakan masa nyata, setiap muat naik fail akan memaparkan skrin muat.
Isu konflik. Jika 2 pengguna menukar item secara serentak, situasi yang tidak selesai mungkin timbul. Dengan kerja berkala kami boleh membetulkannya kemudian; pada masa nyata ia perlu disimpan sebagai baris gilir, yang lebih mengelirukan pengguna.
Isu fungsi. Khususnya menamakan semula dan menyusun semula item. Dalam penyegerakan undur, alat bergantung ketat pada logik direktori, dan setiap penyegerakan 100% item diperiksa. Jika dilakukan selepas setiap kemas kini, akan ada beribu permintaan sesaat. Jika tidak: perubahan akan hilang.
Bolehkah saya segerakkan lampiran ke beberapa klien awan
Tidak, ciri ini hanya tersedia dari versi 15.
Kami menggunakan editor khas dalam awan kami (cth. OnlyOffice, Office 365, dll.). Adakah fail dibuka dalam editor itu?
Ya, bergantung pada konfigurasi cloud client anda.
Apakah dasar kemas kini alat anda?
Mengikut dasar Odoo Apps Store semasa:
- Setiap modul yang dibeli untuk versi 12.0 dan sebelumnya memberi akses ke semua versi sehingga 12.0.
- Bermula versi 13.0, setiap versi modul perlu dibeli berasingan.
- Tanpa mengira versi, pembelian memberi hak kepada semua kemas kini dan pembetulan pepijat dalam versi utama.
Sila ambil perhatian bahawa pasukan faOtools tidak mengawal dasar itu. Untuk soalan, hubungi terus wakil Odoo Apps Store.
Bagaimana memasang aplikasi anda di Odoo.sh?
Pendekatan paling terus ialah menggunakan aliran kerja terbina dalam kedai Odoo:
1. Buka halaman modul dan klik butang Deploy on odoo.sh
2. Selepas itu anda akan dihalakan ke halaman GitHub. Log masuk ke akaun, kemudian klik 'Create a new repo' atau guna yang sedia ada. Pastikan repositori bersifat peribadi. Tidak dibenarkan menerbitkan aplikasi di bawah lesen OPL-1. Jika perlu, cipta repo baharu untuk projek Odoo.sh
3. Kemudian pergi ke odoo.sh dan klik butang Deploy. Dalam tetingkap pop timbul, hantar keputusan dan klik 'Continue.' Tindakan ini akan mencetuskan pemasangan.
Langkah ini akan memasang aplikasi pada cabang pengeluaran projek. Jika anda mahu men-deploy aplikasi ke cabang lain atau mengemas kini modul, lakukan tindakan berikut:
1. Muat naik kod sumber aplikasi dari kedai Odoo
2. Commit modul ke repositori GitHub yang diperlukan. Pastikan tiada folder/fail aplikasi diabaikan (iaitu tidak termasuk dalam .gitignore repo). Repositori dicipta secara automatik oleh odoo.sh dan secara lalai mungkin termasuk item penting (cth., /lib). Muat naik semua direktori, subdirektori dan fail modul tanpa pengecualian
3. Deploy cabang sasaran projek odoo.sh atau, jika tetapan anda mengandaikan demikian, tunggu sehingga ia dibina secara automatik.
Bagaimana memasang aplikasi anda pada pelayan saya sendiri?
2. Mulakan semula pelayan Odoo;
3. Hidupkan mod pembangun (tetapan teknikal);
4. Kemas kini senarai aplikasi (menu aplikasi);
5. Cari aplikasi dan tekan 'Activate'/'Install';
6. Ikuti garis panduan pada halaman aplikasi jika ada.
Saya perasan aplikasi anda ada add-on tambahan. Boleh beli kemudian?
Ya, sudah tentu. Pada masa yang sama Odoo secara automatik menambah semua kebergantungan ke troli, jadi anda harus kecualikan alat yang sudah dibeli untuk elak bayaran berganda.
Saya menyebarkan aplikasi anda di Odoo.sh dan nampak amaran/ralat dalam ujian
Amaran merah/oren tidak mempengaruhi ciri aplikasi. Malangnya, modul kami kadang-kadang tidak lulus ujian automatik standard kerana ujian itu mengandaikan tingkah laku yang bercanggah dengan matlamat aplikasi. Contohnya kami mengubah pengiraan harga, manakala ujian modul Odoo standard membandingkan harga akhir dengan algoritma standard.
Pertama sekali, semak ciri pangkalan data yang dilancarkan. Adakah semuanya berfungsi dengan betul?
Jika anda masih menganggap amaran mempengaruhi ciri sebenar, hubungi kami dan hantar log pemasangan penuh serta senarai penuh modul yang dilancarkan (termasuk teras dan pihak ketiga).
Bolehkah saya membeli aplikasi terus daripada syarikat anda?
Tidak, kami hanya mengedarkan alat melalui kedai aplikasi Odoo rasmi.
Saya ingin mendapat diskaun
Malangnya, kami tidak mempunyai cara teknikal untuk memberikan harga individu.
Bolehkah saya memasang aplikasi pada pangkalan data Odoo Online (SaaS) saya?
Tidak, aplikasi pihak ketiga tidak boleh digunakan di Odoo Online. Malangnya Odoo SaaS menyekat kemungkinan itu.
Alat anda bergantung pada aplikasi lain. Patutkah saya membelinya?
Ya, alat memerlukan semua modul yang ditanda dalam kebergantungan untuk berfungsi dengan betul. Harga pada halaman aplikasi sudah merangkumi semua kebergantungan yang diperlukan.
Berapakah harga modul dalam dolar AS? Mengapa ia berubah?
Harga modul kami ditetapkan dalam euro. Kedai Odoo menukar harga ke mata wang lain mengikut kadar pertukaran dalamannya. Jadi harga dalam dolar AS mungkin berubah apabila kadar dikemas kini.
Teks aplikasi dan laman web dalam bahasa selain Inggeris dibantu AI dan diselaraskan dengan terjemahan rasmi Odoo. Jika anda nampak kesilapan, hantar tiket ketepatan terjemahan dan kami akan membetulkannya.
Pelaporan pepijat
Jika anda menemui pepijat atau tingkah laku tidak konsisten, sila hubungi kami. Kami jamin pembetulan dalam 60 hari selepas belian dan masih berminat menambah baik alat selepas tempoh itu.
Anda tidak memerlukan nombor telefon atau kad kredit untuk menghubungi kami. Hanya pendaftaran e-mel ringkas yang tidak mengambil lebih daripada 30 saat.
Sertakan sebanyak mungkin butiran dalam permintaan: tangkapan skrin, log pelayan Odoo, penerangan penuh cara menghasilkan semula masalah, dan sebagainya. Biasanya mengambil beberapa hari bekerja untuk menyediakan pelan kerja (jika pepijat disahkan) atau memberi garis panduan apa yang perlu dilakukan (jika tidak).
Permintaan ciri awam dan idea modul (pembangunan percuma)
Kami sangat bermotivasi untuk menambah baik alat kami dan berterima kasih atas sebarang maklum balas. Jika keperluan anda berguna secara awam dan boleh dilaksanakan dengan cekap, pasukan akan memasukkannya ke senarai tugasan kami.
Senarai tugasan sebegini diproses secara berkala dan tidak melibatkan yuran tambahan. Walaupun kami tidak dapat menjanjikan tarikh akhir dan reka bentuk muktamad, ini mungkin cara baik untuk mendapat ciri yang diingini tanpa pelaburan dan risiko.
Anda tidak memerlukan nombor telefon atau kad kredit untuk menghubungi kami. Hanya pendaftaran e-mel ringkas yang tidak mengambil lebih daripada 30 saat.
Alat untuk menyimpan kata laluan dengan selamat dalam Odoo untuk kegunaan bersama. Peti besi dikongsi
198€Alat untuk membina pangkalan pengetahuan yang mendalam dan berstruktur untuk penggunaan dalaman dan luaran. Knowledge System. KMS. Semakan seperti wiki.
398€Alat pengurusan perkhidmatan berasaskan masa dari tempahan temu janji hingga jualan dan ulasan
Alat untuk menetapkan sasaran KPI dan mengawal pemenuhannya mengikut tempoh. Papan pemuka KPI. Pereka papan pemuka. Carta KPI
198€Alat untuk mengurus Odoo dari sembang AI kegemaran melalui MCP. Claude. Mana-mana AI yang menyokong MCP.
198€Alat untuk menyusun lampiran Odoo secara fleksibel dalam folder dan menyegerakkan direktori dengan klien awan: Google Drive, OneDrive/SharePoint, Nextcloud/ownCloud, Dropbox, Amazon S3, Box dan NAS. DMS. Pengurus Fail. Sistem pengurusan dokumen
Alat untuk menyegerakkan lampiran Odoo secara automatik dengan fail OneDrive secara dua hala
Alat untuk menyegerakkan lampiran Odoo secara automatik dengan fail ownCloud/Nextcloud secara dua hala
Alat untuk menyegerakkan lampiran Odoo secara automatik dengan fail DropBox secara dua hala