diff --git a/contrib/openldap/core-fd.schema b/contrib/openldap/core-fd.schema
index 792d5c80ecca3dce8648eb97f8211db41a26632a..42beec3c29e35d8dce6384bfbb73c00bce55e777 100644
--- a/contrib/openldap/core-fd.schema
+++ b/contrib/openldap/core-fd.schema
@@ -92,6 +92,40 @@ attributetype ( 1.3.6.1.4.1.38414.62.11.4 NAME 'fdSubscriptionContractId'
 attributetype ( 1.3.6.1.4.1.38414.62.11.5 NAME 'fdSubscriptionName'
   DESC 'FusionDirectory - Subscription client name'
   SUP name )
+  
+#Macro Attributes
+
+attributetype ( 1.3.6.1.4.1.38414.90.1.1 NAME 'fdMacroRDN'
+  DESC 'FusionDirectory - Macro RDN'
+  EQUALITY caseExactIA5Match
+  SUBSTR caseExactIA5SubstringsMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+  SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.38414.90.1.2 NAME 'fdMacroMail'
+  DESC 'FusionDirectory - Macro RDN'
+  EQUALITY octetStringMatch
+  SUBSTR caseIgnoreSubstringsMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.40)
+  SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.38414.90.1.3 NAME 'fdMacroInvitations'
+  DESC 'FusionDirectory - template mail field'
+  EQUALITY octetStringMatch
+  SUBSTR caseIgnoreSubstringsMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.40)
+
+attributetype ( 1.3.6.1.4.1.38414.90.1.4 NAME 'fdMacroUserRecovery'
+  DESC 'FusionDirectory - template mail field'
+  EQUALITY octetStringMatch
+  SUBSTR caseIgnoreSubstringsMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.40)
+
+attributetype ( 1.3.6.1.4.1.38414.90.1.5 NAME 'fdMacroUserReminder'
+  DESC 'FusionDirectory - template mail field'
+  EQUALITY octetStringMatch
+  SUBSTR caseIgnoreSubstringsMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.40)
 
 # Classes
 
@@ -130,3 +164,12 @@ objectclass ( 1.3.6.1.4.1.38414.62.2.2 NAME 'fdSubscriptionInformation' SUP top
   DESC 'FusionDirectory - Information about current subscription'
   MUST ( cn )
   MAY ( uid $ fdSubscriptionStartDate $ fdSubscriptionEndDate $ fdSubscriptionType $ fdSubscriptionContractId $ fdSubscriptionName ))
+  
+# Classes Macros Related
+
+objectclass ( 1.3.6.1.4.1.38414.90.2.1 NAME 'fdMacroConf'
+  DESC 'FusionDirectory Macro Configuration'
+  SUP top AUXILIARY
+  MUST ( cn )
+  MAY ( fdMacroRDN $ fdMacroMail $ fdMacroInvitations $ fdMacroUserRecovery $ fdMacroUserReminder ) )
+
diff --git a/plugins/config/class_macroConfig.inc b/plugins/config/class_macroConfig.inc
new file mode 100644
index 0000000000000000000000000000000000000000..69003a75ce435c81bdbc984393c34edd6a738950
--- /dev/null
+++ b/plugins/config/class_macroConfig.inc
@@ -0,0 +1,67 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+  Copyright (C) 2012-2022 FusionDirectory
+
+  This program is free software; you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation; either version 2 of the License, or
+  (at your option) any later version.
+
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program; if not, write to the Free Software
+  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+class macrosConfig extends multiPluginSection
+{
+  static function plInfo (): array
+  {
+    return [
+      'plShortName'     => _('macrosConfiguration'),
+      'plDescription'   => _('FusionDirectory macro configuration tool'),
+      'plObjectClass'   => ['fdMacrosConf'],
+      'plCategory'      => ['configuration'],
+      'plObjectType'    => ['smallConfig'],
+
+      'plProvidedAcls'  => parent::generatePlProvidedAcls(static::getAttributesInfo())
+    ];
+  }
+
+  static function getAttributesInfo (): array
+  {
+    return [
+      'macrosConf' => [
+        'name'  => _('Macros'),
+        'attrs' => [
+          new StringAttribute(
+            _('Macros RDN'), _('Branch in which Directory Base, Macro will be stored'),
+            'fdMacroRDN', TRUE,
+            'ou=macroConfig'
+          ),
+        ]
+      ],
+      'Macro' => [
+        'name'  => _('Linked Object'),
+        'attrs' => [
+          new SelectAttribute(
+            _('Primary affiliation'), _('eduPersonPrimaryAffiliation - Main status of the person'),
+            'mailTemplate', FALSE
+          ),
+          new SetAttribute(
+            new SelectAttribute(
+              _('Macro'), _('List Of Available Macro'),
+              'fdMacroMail', FALSE
+            )
+          ),
+        ]
+      ],
+    ];
+  }
+}
+