The E-Card Wizard allows InterAction users to select from their InterAction contacts as long as they are already logged into InterAction.
This requires a cross-domain Ajax connection to be set up to allow Vuture to access a user's InterAction data from the E-Card Wizard.
Technical Overview
- Cross Domain Ajax provides a method for connecting Vuture and InterAction through the browser
- Vuture talks directly to the InterAction web client in the browser without using the Internet
- This works by exchanging data between Vuture and InterAction through the browser using a Flash-based Cross Domain Ajax solution for Internet Explorer and Cross-Origin Resource headers for other browsers that don't support Flash such as iPads and iPhones
- This is particularly useful for the eCard Wizard
Description of Process and Data Flows
- A user logs into both the E-Card Wizard and InterAction Web Client through the same browser window on separate tabs
- The Vuture User requests the InterAction lists they have access to from the Vuture browser tab which can be restricted just to their My Contacts folder if required
- A Cross Domain request is made to the InterAction Web Client from the Vuture browser tab using the current IA credentials
- The IA Lists XML data is returned to the Vuture browser tab and rendered on the page
- The Vuture User selects the List that has the contacts they wish to mail
- A Cross Domain request is made to the IA Web Client to return the Contacts in the selected List
- The Contacts XML is returned to the Vuture browser tab and rendered on the page
- The Vuture User selects the IA Contacts they wish to mail
- When the email is sent the selected Contacts are posted to your Vuture Server across the internet and the mailing is sent
- A mailing Activity for each contact is logged in the Vuture Queue on your Vuture Server
- When a recipient opens an email, clicks on a link, unsubscribes or if the email bounces, an Activity is written to the Vuture Queue on your Vuture Server
- The Vuture Queue is processed using the normal InterAction connection
Requirements
- Several files need to be copied to the root of the IIS site (%SystemDrive%\inetpub\wwwroot) of the InterAction Application Server that your InterAction users connect to. NOTE: If you have a separate IA App Server for Vuture and a separate internal IA server for your IA users then you only need to copy the files to the internal server.
- Vx needs the internal URL to this IIS directory e.g. http://MyInterActionServer
- For cross domain requests to work in the user's browser:
- They need to be logged into the InterAction Web Client in a tab in their browser - if they are not logged in Vuture will prompt them to login and present them with a login box
- They need to be logged into Vuture in another browser tab in the same browser window
- They need to have Flash installed on their PC - if they have a Flash blocker then they need to permit Flash from http://MyInterActionServer
- For browsers without Flash Cross Origin Resource headers can be setup
- Users needs to be able to access the files copied above i.e. they should be able to browse to http://MyInterActionServer/crossxhr.js
- There is no requirement for InterAction to be accessible from the Internet
- Flash is not required
- Activities are written back using the normal Vuture queue
Setup & Testing
The following files need to be copied to the root of the InterAction IIS site on your InterAction Application Server, which is located in %SystemDrive%\inetpub\wwwroot:
- crossxhr.js
- crossxhr.swf
- crossdomain.xml
- web.config
Edit the following two files with a text editor:
crossdomain.xml
Replace *.my_vx_domain in crossdomain.xml with your Vx URL e.g. *.
mycompany.vuturevx.com
web.config
Replace
http://my_vx_domain in web.config with your Wizard URL, this is usually your back-end Vuture URL running over HTTP e.g.
http://mycompany.vuturevx.com (it should match the domain part of "Admin.System.Wizard.Wizard URL"
The web.config should look like the following:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="{Vuture Wizard URL}" />
<add name="Access-Control-Allow-Methods" value="POST, GET, OPTIONS" />
<add name="Access-Control-Allow-Headers" value="X-JSON,X-Prototype-Version,X-Requested-With,Accept-Encoding" />
<add name="Access-Control-Expose-Headers" value="X-JSON" />
<add name="Access-Control-Allow-Credentials" value="true" />
</customHeaders>
</httpProtocol>
</system.webServer>
</configuration>
For demo environments where you may connect via multiple Vx instances you can create dynamic CORS headers using the format below. Vary the condition to match the required Vuture Wizard URLs - the example below allows CORS connection from any URL.
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Methods" value="POST, GET, OPTIONS" />
<add name="Access-Control-Allow-Headers" value="X-JSON,X-Prototype-Version,X-Requested-With,Accept-Encoding" />
<add name="Access-Control-Expose-Headers" value="X-JSON" />
<add name="Access-Control-Allow-Credentials" value="true" />
</customHeaders>
</httpProtocol>
<rewrite>
<outboundRules>
<clear />
<rule name="AddCrossDomainHeader">
<match serverVariable="RESPONSE_Access_Control_Allow_Origin" pattern=".*" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="true">
<add input="{HTTP_ORIGIN}" pattern="(.*)" />
</conditions>
<action type="Rewrite" value="{C:0}" />
</rule>
</outboundRules>
</rewrite>
</system.webServer>
</configuration>
In addition copy the following two files for testing - they can be removed once testing is complete:
Open test.html with a text editor and replace my_ia_app_server with the URL of your IA application server.
You can test the files are in the correct place by browsing to
http://my_ia_app_server/test.html and you should see a test page, where my_ia_app_server is the URL you use to connect to the InterAction web client. Click on "test cross domain ajax" button and you should a simple xml file loaded containing hello world.
The required files can be downloaded from http://{My_Vx_URL}/help/crossxhr.zip where {My_Vx_URL} is the URL you use to access Vuture
E-Card Setup
The E-Card wizard needs to know the local URL of your InterAction that your users use to access InterAction on your local network. This is usually different from the URL that Vuture uses for a normal connection.
Enter this URL as the InterAction Point-to-Point URL either in an existing or new InterAction instance in Admin.System. If you create a new InterAction instance you should setup the external URL with username/password etc. as normal - you can use Export/Import to copy the existing settings. It is simplest to use the existing instance but you might want to use a separate instance if you don't want the eCard content type to be visible for normal sends or you want to vary any of the settings.
A client's local IA URL is normally in the format http://local_server_name/interaction (don't add /home)
Set "Admin.System.Wizard.InterAction Instance" drop-down to the new InterAction instance number that you just updated or setup . NOTE: currently you can only use E-Card and IA with one IA instance which you select here.
IMPORTANT: If the internal InterAction URL is an HTTP (rather than HTTPS) URL then you will need to tell the wizard to also run over HTTP otherwise some browsers will block the connection since the Vuture wizard is running over HTTPS and the InterAction connection is running over HTTP.
To implement this requires the following three steps:
-
Set the Wizard URL to run over HTTP instead of HTTPS
Set "Admin.System.Wizard.Wizard URL" to:
http://{myVutureURL}/wizard
e.g. http://mycompany.vuturevx.com/wizard
-
Set the system to not redirect pages in the wizard to HTTPS
In "Admin.System.SSL.Ignore List" add:
/wizard/
to the setting.
If it is blank just enter the value: /wizard/
If there is a value there already add it as a comma separated list, i.e. ,/wizard/
-
Set the text editor paste from word to load over HTTP when used in the Wizard
In "Admin.System.SSL.Ignore List" add:
/js/tiny_mce-3.5.10/plugins/paste/pasteword.htm
to the setting.
If it is blank just enter the value: /js/tiny_mce-3.5.10/plugins/paste/pasteword.htm
If there is a value there already add it as a comma separated list, i.e. ,js/tiny_mce-3.5.10/plugins/paste/pasteword.htm
Note: if you setup the E-Card Wizard to run over HTTP as described above and your Vuture instance runs over HTTPS then you will need to logout of Vuture in order to use the E-Card Wizard. This is because they both use the same URL by default and this means they use the same session cookies. However HTTPS cookies cannot be read by HTTP so the E-Card Wizard will log you out if you are logged into Vuture at the same time. Typically it is non-Vuture users who use the Wizard so this is usually not a major issue. If you find it problematic then a solution is to setup a custom URL for the E-Card Wizard.