We have created a landing page with a form and a series of follow up emails and we currently use the myemma system to power the emails and landing page. What we need to do is use the myEmma API to put the form and subsequent follow up on our own landing pages, and just use the myemma service to send out the emails.
Additionally, we need a developer who can write into our CRM via open web services to send the form data directly to our CRM.
The myemma API details are below. The landing page can be viewed at [url removed, login to view]
Emma's Remote Signup API
Emma offers a Web Service API that allows Emma customers with programming know-how to create a direct connection between a remote signup or entry form and their Emma audience.
Accessing the API
This is sample documentation, so you'll see placeholders in the code snippets below. Once you let us know you’re ready to use the feature, we'll create a username and password that will allow you to see the documentation that's specific to your account. When you're logged in, you can access the Remote Signup API here: [url removed, login to view]:RemoteSignup
We'll grant access to the Remote Signup Form for this username and password to your account. The Remote Signup permissions granted to this user extend only as far as Remote Signup for this account - a user can’t initiate a Remote Signup Form for an account to which he or she has no access.
Setting up your API
The following post variables are required to engage the signup process:
username: the username that will be created when you purchase the feature
password: the password that will be created when you purchase the feature
To assign members to different groups, the variable group [**desired group id**] must be set.
Here are sample groups:
group name group id
Monthly Newsletter XXXXX
Website Subscribers XXXXX
You'll also need to set the field values.
The possible field names are:
field title field name to reference
first name emma_member_name_first
last name emma_member_name_last
Keep in mind that you will need to create fields within the Emma interface for those field names to appear in your custom documentation.
Trying to post state or country information? Click on the appropriate link for state or country formatting examples.
In addition to those formatting options, you may also need special formatting for fields which are multiple checkbox fields or multiple select fields. Documentation on this formatting can be found in this self-help entry on formatting. Please notice that while the self-help speaks specifically about importing, those formatting rules are required for remote signup as well.
Beyond adding a member...
In the event that an email address being posted already exists in the acount, the API will treat the post as an update. Here is a list of optional variables you may pass to the API:
When this variable is passed and is set to '1' during an update call, the member will be removed from all groups to which they belonged.
Tip: If you are looking to remove a member from certain groups but keep them in others, flush_groups can be a workaround. Just include "flush_groups=1" in your POST call as well as all the groups (with something like: group=1) of which the person should be a member, leaving off the group(s) from which you want the person removed. The sum effect of this is to remove the person from all the groups, via flush groups, and then add the person back to the groups which you specify.
When this variable is passed during an update call, the member's email address will be updated to this value. If the value of new_member_email equals the emma_member_email or is found in the account elsewhere, this update will fail. The failure code here is -3.
When this variable is passed and is set to '1' during an update call, the member will be deleted. If successful, 4 is returned. If failure occurs, -5 is returned. A deleted member will be restored when an email is matched in an account with that of a deleted member.
By default, all remote signups send a confirmation email. If this variable is passed and set to '1', the confirmation email will not be sent.
After your post has been made you will get one of the following response codes:
1: added a member
2: updated a member
3: member exists
-1: failed to authenticate
-2: failed to add member
-3: failed to update member
Examples of the Remote Signup API
Code examples save a new user with the following information:
first name: Bob
to the group: Bob Smith Contacts
references to "**username**" and "**password**" should be replaced with the custom Remote Signup username and password.
PHP w/ PEAR's HTTP_Client package
$emma_client = new HTTP_Client();
// POST should be filtered appropriately
$_POST['emma_account_id'] = '2975';
$_POST['signup_post'] = '24863';
$_POST['username'] = '**username**';
$_POST['password'] = '**password**';
$_POST['group'] = 1;
$_POST['emma_member_name_first'] = 'Bob';
$_POST['emma_member_email'] = '';
$emma_client->post("[url removed, login to view]:RemoteSignup", $_POST);
$response_code = $emma_client->currentResponse();
PHP w/ cURL
$post = "signup_post=24863&emma_account_id=2975&username=**username**&password=**password**&group=1";
$post .= "&emma_member_email=&emma_member_name_first=Bob";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"[url removed, login to view]:RemoteSignup");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
$response_code = curl_exec ($ch);
Testing Your Permissions Locally
If you want to test your login and ability to use the remote signup, you can create a file on your local filesystem with the following form and access it in your web browser *:
<FORM action="[url removed, login to view]:RemoteSignup" method="post">
<input type="hidden" name="signup_post" value="24863">
<input type="hidden" name="emma_account_id" value="2975">
<input type="hidden" name="username" value="**username**">
<input type="hidden" name="password" value="**password**">
<input type="hidden" name="group" value="1">
<input type="text" name="emma_member_email">
<input type="text" name="emma_member_name_first">
<input type="text" name="emma_member_name_last">
<input type="submit" value="signup">
*This sample should not be used in production environments because the username and password will be displayed in the source code. Please use a backside post.