Looking at the code of [node_save()][1], which the function used to save a node, the hooks that are invoked after drupal_write_record(), which is the function used to set the node ID, are the following ones (when the node is created): - [hook_node_insert()][2] - [hook_entity_insert()][3] <!-- break --> // Call the node specific callback (if any). This can be // node_invoke($node, 'insert') or // node_invoke($node, 'update'). node_invoke($node, $op); // Save fields. $function = "field_attach_$op"; $function('node', $node); module_invoke_all('node_' . $op, $node); module_invoke_all('entity_' . $op, $node, 'node'); [1]: http://api.drupal.org/api/drupal/modules--node--node.module/function/node_save/7 [2]: http://api.drupal.org/api/drupal/modules--node--node.api.php/function/hook_node_insert/7 [3]: http://api.drupal.org/api/drupal/modules--system--system.api.php/function/hook_entity_insert/7