I just wanted to let you know that in order to create a campaign member you need to map the contact id field in the campaign member object - works great. HOWEVER, if the campaign member exists and you are trying to update a campaign member status - having the contact id mapped causes an error - "Unable to create/update fields: ContactId. Please check the security settings of this field and verify that it is read/write for your profile." This problem also extends to having the campaign id mapped (SF does not allow you to update a campaign ID.