diff --git a/salesforce_api/salesforce_api.module b/salesforce_api/salesforce_api.module
index 9d44c1f..a9a60e5 100644
--- a/salesforce_api/salesforce_api.module
+++ b/salesforce_api/salesforce_api.module
@@ -1313,7 +1313,7 @@ function salesforce_api_get_updated($type, $start, $end) {
   }
   $sf = salesforce_api_connect();
   if ($sf) {
-    $response = $sf->client->getUpdated($type, $start, $end);
+    $response = $sf->client->getUpdated($type, (int)$start, (int)$end);
     if ($response->ids) {
       return $response;
     } else {
diff --git a/sf_import/sf_import.drush.inc b/sf_import/sf_import.drush.inc
index b1cd3b2..7f2a3dc 100644
--- a/sf_import/sf_import.drush.inc
+++ b/sf_import/sf_import.drush.inc
@@ -20,6 +20,8 @@ function sf_import_drush_help($section) {
       $output = dt("Initiate a salesforce import.") . "\n\n";
       $output .= dt("Argument: Key of salesforce fieldmap");
       return $output;
+    case 'drush:sf-get-updated':
+      $output = dt("Get updated Salesforce records.") . "\n\n";
   }
 }
 
@@ -53,11 +55,51 @@ function sf_import_drush_command() {
       recent than the Drupal changed date (only applies to nodes)',
     ),
   );
+  
+  $items['sf-get-updated'] = array(
+    'description' => 'Get updated Salesforce records',
+    'options' => array(
+      '--no-process' => 'Save the updated SFIDs to sf_import_queue table, but do not process',
+    )
+  );
 
   return $items;
 }
 
 /**
+ * Calls SF Import Get Updated
+ */
+function drush_sf_import_sf_get_updated() {
+
+  if (function_exists('_sf_import_get_updated_records')) {
+    drush_print('Checking for updated records...');
+    $records = _sf_import_get_updated_records();
+    if (is_array($records) && count($records) > 0) {
+      drush_print("Returned " . count($records) . " record(s)");
+      $table = array(array('SFID', 'Fieldmap', 'Time Imported'));
+      $results = array_merge($table, $records);
+      drush_print_table($results);
+      $no_process  = drush_get_option('no-process', FALSE);
+      if ($no_process) {
+        return;
+      }
+      drush_print("Processing records...");
+      $process = _sf_import_process_records();
+      if (is_array($process) && count($process) > 0) {
+        drush_print("Processed " . count($process) . " record(s)");
+        $table = array(array('SFID', 'OID', 'Fieldmap'));
+        $results = array_merge($table, $process);
+        drush_print_table($results);
+      } else {
+        drush_print('Did not process any records.');
+      }
+    } else {
+      drush_print('No new records.');
+    }
+  }
+}
+
+/**
  * Display available Salesforce field mappings
  */
 function _drush_sf_import_show_fieldmaps() {
diff --git a/sf_import/sf_import.install b/sf_import/sf_import.install
new file mode 100644
index 0000000..e859fc0
--- /dev/null
+++ b/sf_import/sf_import.install
@@ -0,0 +1,51 @@
+<?php
+
+/**
+ * Implements hook_schema().
+ */
+function sf_import_schema() {
+  $schema['sf_import_queue'] = array(
+    'description' => t('TODO: please describe this table!'),
+    'fields' => array(
+      'sfid' => array(
+        'description' => t('TODO: please describe this field!'),
+        'type' => 'varchar',
+        'length' => '32',
+        'not null' => TRUE,
+      ),
+      'time' => array(
+        'description' => t('TODO: please describe this field!'),
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+      ),
+      'fieldmap' => array(
+        'description' => t('TODO: please describe this field!'),
+        'type' => 'varchar',
+        'length' => '64',
+        'not null' => TRUE,
+      ),
+    ),
+    'indexes' => array(
+      'sfid' => array('sfid'),
+      'fieldmap' => array('fieldmap'),
+    ),
+    'primary key' => array('sfid'),
+  );
+
+  return $schema;
+}
+
+/**
+ * Implements hook_install().
+ */
+function sf_import_install() {
+  drupal_install_schema('sf_import');
+}
+
+/**
+ * Implements hook_uninstall().
+ */
+function sf_import_uninstall() {
+  drupal_uninstall_schema('sf_import');
+}
diff --git a/sf_import/sf_import.module b/sf_import/sf_import.module
index 3d9819d..0632b17 100644
--- a/sf_import/sf_import.module
+++ b/sf_import/sf_import.module
@@ -221,3 +221,94 @@ function sf_import_batchjob($fieldmap_key, $extra, &$context) {
   $context['sandbox']['position']++;
   $context['finished'] = $context['sandbox']['progress'] / $size;
 }
+
+/**
+ * Implements hook_cron().
+ */
+function sf_import_cron() {
+  // Get new records from Salesforce since last time cron was run
+  _sf_import_get_updated_records();
+  // Process the records (insert/update records)
+  _sf_import_process_records();
+}
+
+/**
+ * Loops through fieldmaps with automatic create/update settings and imports
+ * new records since the last time the import process was run.
+ */
+function _sf_import_get_updated_records() {
+  $fieldmaps = salesforce_api_salesforce_field_map_load_all();
+  $records = array();
+  // Get updated and/or deleted items for each fieldmap and store in sf_import_queue
+  // Start date is newest date of SFID stored in sf_import_queue, end date is time()
+  foreach ($fieldmaps as $map) {
+    if ($map->automatic == 0) {
+      continue;
+    }
+    $sql = "SELECT time FROM {sf_import_queue} ORDER BY time DESC LIMIT 1";
+    $start = db_result(db_query($sql));
+    if (!$start) {
+      // If $start isn't set, then set the start to an hour back from the current time
+      $start = variable_get('sf_import_queue_last_import', time() - 3600);
+    }
+    
+    $end = time();
+    
+    if ($start - $end < 60) {
+      $start = $start - 60;
+    }
+    
+    // Set the time that the last import took place
+    variable_set('sf_import_queue_last_import', time());
+    watchdog('sf_import.module', "start = $start end = $end", null, WATCHDOG_NOTICE, null);
+    if ($updates = salesforce_api_get_updated($map->salesforce, $start, $end)) {
+      $update_sfids = $updates->ids;
+      foreach ($update_sfids as $sfid) {
+        $sql = "SELECT sfid FROM {sf_import_queue} WHERE sfid = '%s'";
+        $exists = db_result(db_query($sql, $sfid));
+        if (!$exists) {
+          $object->time = time();
+          $object->sfid = $sfid;
+          $object->fieldmap = $map->name;
+          $ret = drupal_write_record('sf_import_queue', $object);
+        }
+        $records[] = array($sfid, $map->name, time());
+      } 
+    }
+  }
+  if (count($records) > 0) {
+    return $records;    
+  } 
+  else {
+    return FALSE;
+  }
+}
+
+/**
+ * Processes items in the sf_import_queue table.
+ */
+function _sf_import_process_records() {
+  // Process sf_import_queue items
+  $fieldmaps = salesforce_api_salesforce_field_map_load_all();
+  $records = array();
+  $sql = "SELECT sfid, fieldmap FROM {sf_import_queue}";
+   while ($sfids = db_fetch_object(db_query($sql))) {
+     $fieldmap = $sfids->fieldmap;
+     $type = $fieldmaps[$fieldmap]->drupal;
+
+     // "node" mappings are like "node_contenttype".
+     // others are like "user", "uc_order", etc.
+     if (strpos($type, 'node_') === 0) {
+       $type = 'node';
+     }
+
+     $function = 'sf_' . $type . '_import';
+     $drupal_id = salesforce_api_get_id_with_sfid($sfids->sfid, $type);
+     if (function_exists($function)) {
+       $oid = $function($sfids->sfid, $sfids->fieldmap, $drupal_id);
+       $records[] = array($sfids->sfid, $oid, $sfids->fieldmap);
+     }
+     db_query("DELETE FROM {sf_import_queue} WHERE sfid = '%s'", $sfids->sfid);
+   }
+  return $records;
+}
\ No newline at end of file
