Conditionally unpublish nodes for feeds We have a content type that up until today was 100% driven by a feeds importer on a D7 site from an XML file (from a third-party system). This importer ran nightly and was set to "Unpublish non-existent nodes" which worked perfectly to remove items not available anymore.

Due to a business needs change we now need to manually create a couple of nodes of this specific content type and we don't want the importer to unpublish these specific nodes. Modifying the third-party system is not an option so the only possibility that we've come up with is to create a local file (CSV/XML/whatever) and create a new importer to run after the original importer to re-publish them.

We could also locally consume the original file and merge it with our custom node list but this seems like more things could break.

Is there another solution to this problem that we're missing?
You seem to be using a version of feeds that is fairly recent (perhaps version 7.x-2.0-beta2). Having said that, the process function of the FeedsProcessor class is fairly inflexible when it comes to modifying the list of imported nodes that it wants to clean out of Drupal, in that it does not provide a hook to modify that list.

Having said that, your best bet is probably to extend the FeedsNodeProcessor class and only override the initEntitiesToBeRemoved function to then exclude "potentially unpublished" node ids from $state-&gt;removeList. You'll need to determine how all of the nodes from $state-&gt;removeList were created.

How you determine a manually created node from a feeds imported node is up to you but I would recommend querying the feeds_item table. If a node's nid is not found in that table then it's safe to assume that the node was manually created.