I'd like to have a process that runs daily and creates an new opportunity when a contract end date is with 2 months of coming due. The opportunity would be to renew the contract. It should also send an email about the contract expiration.
This is fairly easy with CRM 4.0. First you create a workflow on Contract.
* Scope could be Organitazion.
* Check for when record is created
* Check for when attribute is changed, select the Contract End Date.
* Add a Step called Wait condition
* Click to specify this workflow condition.
* Select Contract, then Contract End Date, then On
* Then click inside the select value textbox,
* On the Form Assistant on the left, select 2 months,
* In the Look For select Workflow and click Execution Time below.
* After this click save and close.
* Select the row below, add a new step called Create Record.
* Configure the Record as Opportunity and when finnished
* Select the Create Record condition, add a step called Send Email.
* Configure the email and when finnished
* Select the Email condition
* Then add a workflow condition of Stop Workflow.
This should do what you want. You could even create a child workflow that sends an email after the contract expires.