diff --git a/models/ecozimut_mixin.py b/models/ecozimut_mixin.py
index c9fe59d3e448374d2dcf121e045e811d301959cf..1cb3642f4a2e4e79775770c08782e8c41958d8cd 100644
--- a/models/ecozimut_mixin.py
+++ b/models/ecozimut_mixin.py
@@ -2,7 +2,7 @@
 # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html)
 
 
-from odoo import fields, models
+from odoo import api, fields, models
 
 
 class EcozimutMixin(models.AbstractModel):
@@ -107,3 +107,23 @@ class EcozimutMixin(models.AbstractModel):
     mission3 = fields.Many2one("ecozimut.mission", string="Missions EcoZimut 3")
     mission4 = fields.Many2one("ecozimut.mission", string="Missions EcoZimut 4")
     mission5 = fields.Many2one("ecozimut.mission", string="Missions EcoZimut 5")
+
+    @api.model
+    def _get_fields_to_sync(self):
+        mixin_fields = [f for f in self.env["ecozimut.mixin"].fields_get().keys()]
+        fields_noupdate = ["currency_id", "id", "display_name", "__last_update"]
+        fields_to_update = [x for x in mixin_fields if x not in fields_noupdate]
+        return fields_to_update
+
+    def get_mixin_vals_from(self, remote=False):
+        vals = {}
+        if remote:
+            for field in self._get_fields_to_sync():
+                if remote[field]:
+                    if self._fields[field].type == "many2one":
+                        vals[field] = remote[field].id
+                    elif self._fields[field].type in ("one2many", "many2many"):
+                        vals[field] = [(6, 0, remote[field].ids)]
+                    else:
+                        vals[field] = remote[field]
+        return vals