The less than symbol (<) and ampersand (&) are two primary special characters to be concerned about. When including fields that may contain those characters you should use a special wrapper so the receiving system understands that they are data content and not part of the XML structure:
:<font size="2"><![CDATA[ '''''CONTENTS ''''' ]]></font>
For example, an address could contain ampersands, so it should be wrapped as follows:
<pre>
<primarycontact>
<firstname>@firstname@</firstname>
<address><![CDATA[@address@]]></address>
</primarycontact>
</pre>
If the response to your Web Service call contains values that you wish to store within a Custom Field on the object against which the Workflow was triggered, you can connect a Update Custom Field Value Workflow Task to be the task following the Web Service - SOAP Message and use the variable syntax to pull the value from the XML Custom Field you selected to store the response to the Web Service call.
For example, if the [[Custom Field Type: Special - XML Data|XML]] Custom Field that stores the response (custom field ID 155255 in the image above) is called '''Web Service Response''', the variable in the [[Update Custom Field Value ]] task to pull a node called '''AssignedIdentifier ''' could be: @xml.Web Service Response.soap:Body.AssignedIdentifier.nodevalue@ If the response should be saved to a System Variable, the syntax would be: @system.xml.fieldname.nodename.nodevalue@
If the response should be saved to a [[System Variable]], the syntax would be:
@system.xml.''fieldname''.''nodename''.nodevalue@