You can update both template-based campaign and custom-code
campaign. For template-based campaign, you can only update properties
associated with the campaign, but not the actual email content itself.
For custom-code campaign, you can update properties as well as update
the HTML/XHTML associated with the campaign. A campaign can only be
updated in DRAFT status.
To update a campaign, the easiest way is to get details of a campaign, as described in Obtaining a Campaign's Information, and modify only the elements you would like to change, and use the resulting XML through a PUT operation on the campaign URI.
For a custom-code campaign, <EmailContent> is required. If you have <EmailContent> in your request but do not have any values, then the content of the campaign will be deleted. If <EmailContent> element is not included in the XML, then the HTML content of the campaign will not be touched.
The body of the request should contain the elements of a campaign, as described in the Campaigns Collection Reference.
Please note that values in non-editable elements do not matter when
you are creating a new campaign, but we advise you keep all the elements
from a GET operation when you are creating a new campaign using the
returned XML in order to make sure you can successfully create a
campaign at all times. Any editable elements that do not have any
values specified during an update will overwrite any existing values
with an empty field. For example, if you had set <GreetingString>
in your campaign, and then if you PUT
<GreetingString></GreetingString>, then any value you had as
your greeting string will be deleted.