Лично я не реализовал ничего подобного, но это 500 000 записей, которые плавают в БД, которые должна отслеживать асинхронная служба, что облагается налогом на ваше оборудование. Кроме того, CRM отслеживает рекурсивные экземпляры рабочих процессов. У меня нет точных спецификаций передо мной, но если рабочий процесс вызывает себя определенное количество раз в течение определенного периода времени, CRM убьет рабочий процесс.
Не могли бы вы написать консольное приложение, которое запрашивает у службы Crm записи, которые не были обновлены в течение трех дней, а затем деактивировать их? Запускайте его как запланированное задание один раз в день, и тогда ваша система CRM не будет нести ответственность за отслеживание всех запущенных экземпляров рабочего процесса.
РЕДАКТИРОВАТЬ: Ах, теперь я вижу, вы могли подумать об одном рабочем процессе, который выполняется на всех записях, в отличие от рабочих процессов, работающих на каждой записи. Совет Бенджинито имеет смысл, если вы идете по этому пути, хотя я все еще думаю, что запланированное задание будет более подходящим, чем использование рабочего процесса.