Introducing 

Prezi AI.

Your new presentation assistant.

Refine, enhance, and tailor your content, source relevant images, and edit visuals quicker than ever before.

Loading content…
Loading…
Transcript

Thank you for your attention!

And one more thing...

Biohazard: http://en.wikipedia.org/wiki/Biological_hazard

WTF/min: http://images.cryhavok.org/d/2471-1/WTFs+per+Minute.jpg

Leatherman: http://www.mypilotstore.com/mypilotstore/sep/6344

Conclusion

IMAGE CREDITS

What We Have

is here

  • The provided php "api" was lacking*
  • Too basic
  • Can require too many SOAP calls
  • Nothing tangible to work with

* Author's personal opinion

REWRITE!

What We Need

  • Single Client Wrapper
  • Objects to work with
  • Easily adaptable into Symfony projects
  • ioEtComponent was birthed

Example

$clientData['email'] = "micah.breedlove@gmail.com";

$client = new EtClient($etUname, $etPass);

// all subscribers require the following 2 points of data

// Email Address and Subscriber key

$subscriberInfo = array(

array(

'Name' => 'EmailAddress',

'Value' => $clientData['email'],

'operator' => 'equals'

),

array(

'Name' => 'SubscriberKey',

'Value' => $clientData['email'],

'operator' => 'equals'

),

);

// Check to see if subscriber exists -if it does returns object if not create it

if (!($subscriber = $client->recallSubscriber($subscriberInfo))) {

$subscriber = $client->createSubscriber(array(

'EmailAddress' => $clientData['email'],

'SubscriberKey' => $clientData['email']

));

}

Still not quiet there...

It still needs more...

ioEtClient

What if we make the classes a little more manageable?

Example 2

$client = new EtClient($etUname, $etPass);

// Create New Triggered Send object ExternalKey

$ts = $client->buildTriggeredSend('mobilesubscriber');

// Assume we already have a subscriber object as $subscriber

// Setting an Exact Target Attribute

$etMblId = new EtAttribute();

$etMblId->setName('Mobile ID');

$etMblId->setValue($mblId);

// Setting attribute to Subscriber

$subscriber->setAttributes(array($etMblId));

// update that Subscriber

$client->updateSubscriber($subscriber, 'updateOnly');

// Define the Subsriber (or list using setList() ) for the TriggeredSend object

$ts->setSubscribers(array($subscriber));

// boolean value

$emailSent = $client->sendEmail($ts, 'TriggeredSend');

Single class to manage all SOAP requests

3 basic commands

  • create
  • recall
  • update

ExactTarget

Component

Et-Classes

Passing the EtClient to these classes gives

added functionality

EtAttribute

Attributes to about Subscribers

Simple functionality:

  • setName()
  • getName()
  • setValue()
  • getValue()

Set on instantiation:

new EtAttribute("ip-addr", "127.0.0.1");

EtEmail

Manage Body content, Name, folder,

active status and more.

Functions:

  • save()
  • send()
  • Attribute*
  • Email
  • List
  • Subscriber
  • TriggeredSend

EtList

Manage an Exact Target list from this class changing names, descriptions, subscribers and categories

Functions:

save()

* not a client-class

EtSubscriber

"People"

Manage aspects of a subscriber including unsubscribed status, email type preferences, lists and emails. Subscribers require the Email Address and Subscriber Key.

Functions Available:

  • addToList( (int) $listId)

  • find((String) $subscriberKey, [(String) $emailAddress], [(array) $options])

  • getAttribute((String) $attributeName)

  • updateAttribute((ioEtAttribute) $ioEtAttribute)

  • save();

EtTriggeredSend

Emails which can be executed when certain

conditions are met, or on-demand emails.

Functions:

useKey((String) $customerKey (array) $options)

send()

What's an Exact Target?

Interactive Marketing Tool for email

Consisting of:

  • Subscribers
  • [Subscriber] Attributes
  • Lists
  • Email

Managed via Web Interface or SOAP calls

$emailAddy = 'micah.breedlove@gmail.com';

$client = new EtClient($etUname, $etPass);

// new subscriber object with the EtClient passed to it

$subscriber = new EtSubscriber($client);

//find by subscriberKey (which is email address)

$subscriber->find($emailAddy);

$etAttr = new EtAttribute("someRandomAttr", $attrValue);

// Attributes setters would also still work

// $etAttr->setName("someRandomAttr");

// $etAttr->setValue($attrValue);

// update the attribute on subscriber object

$subscriber->updateAttribute($etAttr);

// last but not least save

$subscriber->save();

Example

Learn more about creating dynamic, engaging presentations with Prezi