diff --git a/hooks.php b/hooks.php
index 947f19f..6689503 100644
--- a/hooks.php
+++ b/hooks.php
@@ -363,5 +363,18 @@ function _sf_node_import_cck_FIELDTYPE(&$node, $drupal_fieldname, $drupal_field_
 }
 
 /**
+ * Make any needed changes to a node's fieldmaps before fieldmap selection when
+ * node updates and inserts cause nodes to be exported to Salesforce. This
+ * function should take $maps by reference.
+ *
+ * @param object $node
+ * @param array $maps
+ * @return null
+ */
+function hook_sf_node_export_maps($node, &$maps) {
+
+}
+
+/**
  * @} End of "addtogroup hooks".
  */
diff --git a/sf_node/sf_node.module b/sf_node/sf_node.module
index a38d99b..7630809 100644
--- a/sf_node/sf_node.module
+++ b/sf_node/sf_node.module
@@ -124,6 +124,13 @@ function sf_node_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) {
         break;
       }
 
+      // Allow other modules to select which map should be used.
+      $hook = 'sf_node_export_maps';
+      foreach(module_implements($hook) as $module) {
+        $function = $module . '_' . $hook;
+        $function($node, $maps);
+      }
+
       // Otherwise, use the first fieldmap.
       $map = reset($maps);
       $salesforce->name = $map->name;
