{"id":2405,"date":"2023-07-04T17:30:40","date_gmt":"2023-07-04T17:30:40","guid":{"rendered":"https:\/\/obo.zoj.mybluehost.me\/uncategorized\/external-service-post-to-web-form\/"},"modified":"2025-02-17T11:53:46","modified_gmt":"2025-02-17T11:53:46","slug":"external-service-post-to-web-form","status":"publish","type":"post","link":"https:\/\/ioninteractive.com\/ionacademy\/external-service-post-to-web-form\/","title":{"rendered":"External service: Post to web form"},"content":{"rendered":"<h3><strong>Before We Begin<\/strong><\/h3>\n<p>There are few items you&#8217;ll need to roundup prior to setting up the integration. These items can be found in your external web form HTML or they may be provided in your vendor&#8217;s support documentation.<\/p>\n<ul>\n<li>\u201cPost-To&#8221; or endpoint URL<\/li>\n<li>Web form field names<\/li>\n<li>Acceptable values for non-text fields<\/li>\n<\/ul>\n<p>There are a few steps to take in the ion platform before setting up the integration, listed below: &nbsp;<\/p>\n<ul>\n<li>Create data collection fields<\/li>\n<li>Create Ion form(s)<\/li>\n<li>Set-up testing creative<\/li>\n<\/ul>\n<h3><strong>Let&#8217;s get started!<\/strong><\/h3>\n<h3><strong>1. Create field mapping<\/strong><\/h3>\n<p><em>Taking the steps below will map your Ion data collection fields to their corresponding external field names. To get started, add your new field mapping:<\/em><\/p>\n<ol>\n<li>Click the Integrations tab in your ion console\u2019s side nav<\/li>\n<li>Click the \u201cNew field mapping\u201d button<\/li>\n<li>Label the field mapping and optionally add a description<\/li>\n<li>From the Integration type menu, select \u201cPost to Web Form\u201d<\/li>\n<li>Save<\/li>\n<\/ol>\n<h3><strong>2. Add Outbound fields to field mapping<\/strong><\/h3>\n<p><em>Outbound fields define the data you extend from Ion to your external web form.<\/em><\/p>\n<ol>\n<li>Click the \u201cNew outbound field\u201d button to add a new field to your field mapping<\/li>\n<li>When adding a new field, you will either select from the Data Collection drop-down menus, Core Field drop-down menu, implement a mashup template or add a field via JavaScript\n<ul>\n<li>To add a form field, use the Data Collection drop-down menus to select the data field category then data collection field<\/li>\n<li>OR, to add an ion Core field, select from the Core Field drop-down menu<\/li>\n<li>OR, to export multiple ion fields to one external field, use the Mashup Field by plugging <strong>{% raw%} <\/strong>{{DataName}} <strong>{% endraw %} {% raw%} <\/strong>{{DataName2}} <strong>{% endraw %}<\/strong>, etc. into the editor<\/li>\n<li>OR, to reformat a value prior to export, use the JavaScript field to add logic around the value collected in ion. To access data collection fields via Javascript, use respondent.dataname.<\/li>\n<\/ul>\n<\/li>\n<li>Optionally make your field required to run the integration<\/li>\n<li>Optionally add a default value<\/li>\n<li>Enter the external field name<\/li>\n<li>Save<\/li>\n<li>Repeat these steps for each field that should be included in the Field Mapping<\/li>\n<\/ol>\n<h3><strong>3. Optionally add Inbound fields<\/strong><\/h3>\n<p><em>Leverage inbound fields to save data from an XML response into Ion data collection. We&#8217;ll cover how to parse and save JSON responses in a later step.<\/em><\/p>\n<ol>\n<li>Click the \u201cnew inbound field\u201d button<\/li>\n<li>Select the Ion data collection field you seek to save the value into<\/li>\n<li>Enter an x-path query to parse the value from the XML<\/li>\n<li>Save<\/li>\n<li>Repeat for each field you seek to save into Ion data collection<\/li>\n<\/ol>\n<h3><strong>4. Create integration<\/strong><\/h3>\n<ol>\n<li>Navigate back to Integrations screen<\/li>\n<li>Click into the Integrations tab<\/li>\n<li>Click the \u201cNew integration\u201d button<\/li>\n<li>Enter a label<\/li>\n<li>Optionally add a description<\/li>\n<li>Select the Field Mapping you\u2019ve just created<\/li>\n<li>Paste your Form URL into the editor\n<ul>\n<li>This is the \u201cpost to\u201d or end point URL of your web form.<\/li>\n<\/ul>\n<\/li>\n<li>Set maximum retries\n<ul>\n<li>If there is a service interruption with the external platform, Ion will retry the post on the top of the hour for as many retries as you indicate here.<\/li>\n<\/ul>\n<\/li>\n<li>Optionally check off special requirements\n<ul>\n<li>Check \u201cSend form as multipart\/form-data\u201d if applicable<\/li>\n<li>Check \u201cDisable URL Encoding of all form data\u201d if the data should not be URL encoded or if you are leveraging Javscript Outbound fields to custom encode the data<\/li>\n<li>Check \u201cEmpty Fields\u201d to exclude external fields that do not have values from the POST data<\/li>\n<\/ul>\n<\/li>\n<li>Select POST, GET or PUT as the method<\/li>\n<li>Optionally add Debug email address\n<ul>\n<li>Email addresses specified here will receive an email each time the integration runs that displays the data posted and response received. This is feature typically only used for testing and troubleshooting.<\/li>\n<\/ul>\n<\/li>\n<li>Optionally leverage Save Response As\n<ul>\n<li>Input a data name here if you seek to save the entire response from the external server. This is typically used to save a non-XML response so that a server scriptlet can be used to parse out data points you seek to save into ion data collection.<\/li>\n<\/ul>\n<\/li>\n<li>Add Authentication requirements\n<ul>\n<li>If the integration requires NTLM or Basic authentication, make your selection from the Remote authentication dropdown and select corresponding account credentials<\/li>\n<\/ul>\n<\/li>\n<li>Add custom headers\n<ul>\n<li>If the integration requires custom http headers, enter the name(s) and value(s) here.<\/li>\n<\/ul>\n<\/li>\n<li>Save<\/li>\n<\/ol>\n<h3><strong>5. Add integration to Ion pages<\/strong><\/h3>\n<p><em>The Ion platform runs the integration based on rules you create. Rules can be added to any actionable item in your Ion creative. Integration rules are typically run at the form-level, upon form submission, or on an assessment step. Follow the steps below to add the integration to your ion pages.<\/em><\/p>\n<ol>\n<li>Navigate into the creative<\/li>\n<li>Click on the form, button or link you seek to make the trigger to run your integration<\/li>\n<li>In Creative Studio, click on +rules<\/li>\n<li>Select the condition that needs to be met to run the integration\n<ul>\n<li>\u201cNo conditions required\u201d is typically used<\/li>\n<\/ul>\n<\/li>\n<li>Select \u201cRun integration\u201d as the action<\/li>\n<li>Save<\/li>\n<\/ol>\n<h3><strong>6. Test integration<\/strong><\/h3>\n<p>To test your integration, use the testing creative you set up prior to beginning the integration steps. Please note,<strong> integrations do not run in Preview Mode so you&#8217;ll want to <a href=\"https:\/\/help.rockcontent.com\/en\/create-a-url\" target=\"_blank\" rel=\"noopener\">open a URL<\/a> for testing. <\/strong>The integration will run once you submit the Ion form, or complete the action that runs the integration rule. If you\u2019re on the debug email distribution list, you\u2019ll receive an email that displays the data posted and response from the external server. You\u2019ll also want to check that the data you submitted was received by the external platform.<br \/>\n&nbsp;<\/p>\n<h3><strong>Nice work!<\/strong><\/h3>\n<p>Once you\u2019ve completed these steps, your integration is ready for use. You can add the rule to run the integration on all applicable creatives.&nbsp;<\/p>\n<hr>\n<p data-pm-slice=\"1 1 [&quot;bullet_list&quot;,{},&quot;list_item&quot;,{}]\">If you have any questions, please contact us at <a href=\"mailto:help@ioninteractive.com\" rel=\"noopener noreferrer nofollow\">help@ioninteractive.com<\/a>.<\/p>\n<ul><\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Before We Begin There are few items you&#8217;ll need to roundup prior to setting up the integration. These items can be found in your external web form HTML or they may be provided in [&hellip;]<\/p>\n","protected":false},"author":21,"featured_media":5441,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"nf_dc_page":"","footnotes":""},"categories":[2175,2078],"tags":[2173,2177,2178],"class_list":["post-2405","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ion-integrations-the-advanced-capabilites","category-the-advanced-capabilites","tag-advanced","tag-field-mapping","tag-ion-integrations"],"_links":{"self":[{"href":"https:\/\/ioninteractive.com\/ionacademy\/wp-json\/wp\/v2\/posts\/2405","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ioninteractive.com\/ionacademy\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ioninteractive.com\/ionacademy\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ioninteractive.com\/ionacademy\/wp-json\/wp\/v2\/users\/21"}],"replies":[{"embeddable":true,"href":"https:\/\/ioninteractive.com\/ionacademy\/wp-json\/wp\/v2\/comments?post=2405"}],"version-history":[{"count":1,"href":"https:\/\/ioninteractive.com\/ionacademy\/wp-json\/wp\/v2\/posts\/2405\/revisions"}],"predecessor-version":[{"id":5442,"href":"https:\/\/ioninteractive.com\/ionacademy\/wp-json\/wp\/v2\/posts\/2405\/revisions\/5442"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ioninteractive.com\/ionacademy\/wp-json\/wp\/v2\/media\/5441"}],"wp:attachment":[{"href":"https:\/\/ioninteractive.com\/ionacademy\/wp-json\/wp\/v2\/media?parent=2405"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ioninteractive.com\/ionacademy\/wp-json\/wp\/v2\/categories?post=2405"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ioninteractive.com\/ionacademy\/wp-json\/wp\/v2\/tags?post=2405"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}