> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://help.icommkt.com/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# Guía WDSL generación de piezas y envíos

Este módulo incluye todos los servicios requeridos para la creación de Piezas y/o Envíos.

# Crear Pieza

Permite generar un nuevo Newsletter (Pieza) en el sistema.

### Petición

###### URL:

| http://dominioplataforma.icommarketing.com/Newsletters.asmx?WSDL

*dominioplataforma debe ser reemplazado por la URL de la instancia


###### WebService:

| CreateHTML


### Parámetros de la Petición

| - **ApiKey**: Key correspondiente a la instancia (Obtener desde el módulo de configuración de la instancia)
| - **UserName**: Nombre del usuario de acceso a la plataforma
| - **Campaign**: Nombre de la campaña en la cual generar la pieza
| - **NewsletterName**: Nombre de la pieza a generar
| - **PlainText**: Texto plano de la pieza
| - **Content**: Contenido HTML de la pieza


###### Respuesta a la Petición -> Resultados

**Objeto con la siguiente estructura (JSON) ->**
||| * StatusCode: Código del Resultado de la Operación
||| * Message: Texto del Resultado de la operación
||| * MessageDetail: Detalles del mensaje de error cuando se produce
||| * Data: Información adicional


### Listado de Códigos de Respuesta

||| **(1) Newsletter Created**: El Newsletter ha sido creado y aprobado en forma satisfactoria.
||| **(501) Template not found**: No se ha encontrado la plantilla HTML en la instancia.
||| **(502) User Not Found**: El UserName enviado no ha podido ser encontrado entre los usuarios de la instancia.
||| **(503) Campaign Not Found**: La campaña enviada no existe.
||| **(504) Campaign is not valid for this User**: El usuario enviado no tiene acceso a la campaña solicitada.
||| **(505) Content or Plain Text are empty**: El contenido o texto plano de la petición se encuentran vacíos.
||| **(550) Error General**: Se ha producido un error generando la pieza, visualizar los campos Message y MessageDetail para más información.
||| **(512) Invalid SocialNetworks Field Value**: El contenido el campo SocialNetworks es inválido. Debe enviar un string delimitado por comas que contenga los IDs de las redes sociales que se desean incluir en la comunicación. 


### Ejemplo PHP

```php
require_once('lib/nusoap.php');
date_default_timezone_set('UTC');
$proxyhost = isset($_POST['proxyhost']) ? $_POST['proxyhost'] : '';
$proxyport = isset($_POST['proxyport']) ? $_POST['proxyport'] : '';
$proxyusername = isset($_POST['proxyusername']) ? $_POST['proxyusername'] : '';
$proxypassword = isset($_POST['proxypassword']) ? $_POST['proxypassword'] : '';
$useCURL = isset($_POST['usecurl']) ? $_POST['usecurl'] : '0';
$client = new nusoap_client('http://domain.icommarketing.com/Newsletters.asmx?WSDL','wsdl','','','','');
$err = $client->getError();
if ($err) {
echo '<h2>Constructor error</h2><pre>' . $err . '</pre>';
exit();
}
$client->setUseCurl($useCURL);
$html = 'HTML';
$html = utf8_decode($html);
$param = Array(
"ApiKey"=>"API_KEY",
"UserName"=>"UserName",
"Campaign"=>"Campaign Name",
"NewsletterName"=>"Newsletter Name",
"Content"=>$html,
"PlainText"=>"test"
);
$result = $client->call('CreateHTML',$param,",",false,true);
// Check for a fault
if ($client->fault) {
echo '<h2>Fault</h2><pre>';
print_r($result);
echo '</pre>';
} else {
// Check for errors
$err = $client->getError();
if ($err) {
// Display the error
echo '<h2>Error</h2><pre>' . $err . '</pre>';
} else {
echo '<h2>Result</h2><pre>';
$auxresponse = json_decode($client->responseData);
echo '<pre>StatusCode' . $auxresponse->{'StatusCode'} . '</pre>';
echo '<pre>Message' . $auxresponse->{'Message'} . '</pre>';
echo '<pre>MessageDetail' . $auxresponse->{'MessageDetail'} . '</pre>';
echo '<pre>Data' . $auxresponse->{'Data'} . '</pre>'; }

}

```

# Crear Envío

Permite disparar un nuevo envío desde la instancia, detallando el contenido a enviar y la audiencia a la cual se destinará el mismo.

### Petición

###### URL
| http://dominioplataforma.icommarketing.com/Deliveries.asmx?WSDL
*dominioplataforma debe ser reemplazado por la URL de la instancia

###### WebService
| CreateConfiguration

### Parámetros de la Petición

| - **ApiKey**: Key correspondiente a la instancia (Obtener desde el módulo de configuración de la instancia)
| - **UserName**: Nombre del usuario de acceso a la plataforma
| - **Campaign**: Nombre de la campaña en la cual generar la pieza
| - **NewsletterName**: Nombre de la pieza a generar
| - **PlainText**: Texto plano de la pieza
| - **Content**: Contenido HTML de la pieza
| - **FromMail**: Dirección de Correo Remitente (debe existir en la lista de direcciones de la plataforma)
| - **FromName**: Nombre del Remitente
| - **ReplyMail**: Dirección de Correo de Respuesta (debe existir en la lista de direcciones de la plataforma)
| - **Subject**: Asunto del Correo
| - **PreHeader**: PreHeader del Correo (información adicional al Subject que permiten algunos programas de correo)
| - **Profiles**: Lista separada por comas de los PROFILE_KEY a asociar al envío (obtener los PROFILE_KEY desde la pantalla de PROFILES en la plataforma).
| - **StartDate**: Fecha y Hora de Programación del Envío. El formato debe ser YYYY-MM-DDTHH24:MI:SS.
| - **ViralMarketing**: Propiedad para determinar si se desea incluir el LINK para que el receptor pueda reenviar a un amigo el Newsletter. Valores posibles: true o false.
| - **SocialNetworks**: Propiedad para determinar QUE LINKS para compartir en redes sociales se incluyen. Este campo debe ser una cadena de ID’s separados por comas, según la siguiente referencia:
|    * ID 1: Facebook
|    * ID 2: Twitter
|    * ID 3: LinkedIN
|    * ID 4: Google +
|    * ID 5: Pinterest
|      **Nota**: En caso de no desear incorporar ningún ícono para compartir en redes sociales, este campo deberá permanecer VACIO.
| - **Testing**: Propiedad para determinar si el envío es de Testing o Real. Valores posibles: true o false.
| - **SendGoogleAnalyticsData**: Propiedad para determinar si el envío incluye automáticamente los parámetros de identificación de campañas para Google Analytics. Valores posibles: true o false.

###### Respuesta a la Petición -> Resultados

**Objeto con la siguiente estructura (JSON) ->**
||| **StatusCode**: Código del Resultado de la Operación
||| **Message**: Texto del Resultado de la operación
||| **MessageDetail**: Detalles del mensaje de error cuando se produce
||| **Data**: Información adicional

### Listado de Códigos de Respuesta

||| **(1) Configuration Created**: La Configuración de Envío ha sido creada y aprobada en forma satisfactoria.
||| **(501) Template not found**: No se ha encontrado la plantilla HTML en la instancia.
||| **(502) User Not Found**: El UserName enviado no ha podido ser encontrado entre los usuarios de la instancia.
||| **(503) Campaign Not Found**: La campaña enviada no existe.
||| **(504) Campaign is not valid for this User**: El usuario enviado no tiene acceso a la campaña solicitada.
||| **(510) Profile/s Not Found**: Alguno de los PROFILE_KEY remitidos no existe.
||| **(511) Selected profile/s not compatible with selected Template**: Los perfiles remitidos no son compatibles con la pieza enviada. El envío se abortará.
||| **(550) Error General**: Se ha producido un error generando la pieza, visualizar los campos Message y MessageDetail para más información.


### Ejemplo PHP

```php
require_once('lib/nusoap.php');
date_default_timezone_set('UTC');
$proxyhost = isset($_POST['proxyhost']) ? $_POST['proxyhost'] : '';
$proxyport = isset($_POST['proxyport']) ? $_POST['proxyport'] : '';
$proxyusername = isset($_POST['proxyusername']) ? $_POST['proxyusername'] : '';
$proxypassword = isset($_POST['proxypassword']) ? $_POST['proxypassword'] : '';
$useCURL = isset($_POST['usecurl']) ? $_POST['usecurl'] : '0';
$client = new nusoap_client('http://domain.icommarketing.com/Deliveries.asmx?WSDL','wsdl','','','','');
$err = $client->getError();
if ($err) {
echo '<h2>Constructor error</h2><pre>' . $err . '</pre>';
exit();
}
$client->setUseCurl($useCURL);
$html = 'HTML';
$html = utf8_decode($html);
$param = Array(
"ApiKey"=>"API_KEY",
"UserName"=>"UserName",
"Campaign"=>"Campaign Name",
"NewsletterName"=>"Newsletter Name",
"Content"=>$html,
"PlainText"=>"test",
"FromMail"=>"newsletter@dominionews.com",
"FromName"=>"FromName",
"Subject"=>"Subject",
"ReplyMail"=>" newsletter-reply@dominionews.com ",
"Profiles"=>"PROFILE_KEY1, PROFILE_KEY1",
"StartDate"=>"2014-06-06T17:30:00.000",
"ViralMarketing"=>"true",
"SocialNetworks"=>"1,2,3,4,5",
"Testing"=>"false",
"PreHeader"=>"PreHeader",
"SendGoogleAnalyticsData"=>"true"
);
$result = $client->call('CreateConfiguration',$param,",",false,true);
// Check for a fault
if ($client->fault) {
echo '<h2>Fault</h2><pre>';
print_r($result);
echo '</pre>';
} else {
// Check for errors
$err = $client->getError();
if ($err) {
// Display the error
echo '<h2>Error</h2><pre>' . $err . '</pre>';
} else {
echo '<h2>Result</h2><pre>';
$auxresponse = json_decode($client->responseData);
echo '<pre>StatusCode' . $auxresponse->{'StatusCode'} . '</pre>';
echo '<pre>Message' . $auxresponse->{'Message'} . '</pre>';
echo '<pre>MessageDetail' . $auxresponse->{'MessageDetail'} . '</pre>';
echo '<pre>Data' . $auxresponse->{'Data'} . '</pre>'; }

}


```


# Crear Envío c/News Pre-existente
Permite disparar un nuevo envío desde la instancia, utilizando una pieza previamente creada.

### Petición

###### URL

| http://dominioplataforma.icommarketing.com/Deliveries.asmx?WSDL
*dominioplataforma debe ser reemplazado por la URL de la instancia

###### WebService

| CreateConfigurationWithExistingNews

### Parámetros de la Petición

| - **ApiKey**: Key correspondiente a la instancia (Obtener desde el módulo de configuración de la instancia)
| - **UserName**: Nombre del usuario de acceso a la plataforma
| - **Campaign**: Nombre de la campaña en la cual generar la pieza
| - **NewsletterName**: Nombre de la pieza dentro de la plataforma
| - **FromMail**: Dirección de Correo Remitente (debe existir en la lista de direcciones de la plataforma)
| - **FromName**: Nombre del Remitente
| - **ReplyMail**: Dirección de Correo de Respuesta (debe existir en la lista de direcciones de la plataforma)
| - **Subject**: Asunto del Correo
| - **PreHeader**: PreHeader del Correo (información adicional al Subject que permiten algunos programas de correo)
| - **Profiles**: Lista separada por comas de los PROFILE_KEY a asociar al envío (obtener los PROFILE_KEY desde la pantalla de PROFILES en la plataforma).
| - **StartDate**: Fecha y Hora de Programación del Envío. El formato debe ser YYYY-MM-DDTHH24:MI:SS.
| - **ViralMarketing**: Propiedad para determinar si se desea incluir el LINK para que el receptor pueda reenviar a un amigo el Newsletter. Valores posibles: true o false.
| - **SocialNetworks**: Propiedad para determinar QUE LINKS para compartir en redes sociales se incluyen. Este campo debe ser una cadena de ID’s separados
| por comas, según la siguiente referencia: 
| * ID 1: Facebook
| * ID 2: Twitter
| * ID 3: LinkedIN
| * ID 4: Google +
| * ID 5: Pinterest
|    - **Nota**: En caso de no desear incorporar ningún ícono para compartir en redes sociales, este campo deberá permanecer VACIO.
| - **Testing**: Propiedad para determinar si el envío es de Testing o Real. Valores posibles: true o false.
| - **SendGoogleAnalyticsData**: Propiedad para determinar si el envío incluye automáticamente los parámetros de identificación de campañas para Google
| Analytics. Valores posibles: true o false.

###### Respuesta a la Petición -> Resultados

**Objeto con la siguiente estructura (JSON) ->**

||| **StatusCode**: Código del Resultado de la Operación
||| **Message**: Texto del Resultado de la operación
||| **MessageDetail**: Detalles del mensaje de error cuando se produce
||| **Data**: Información adicional

### Listado de códigos de respuesta 

||| **(1) Configuration Created**: La Configuración de Envío ha sido creada y aprobada en forma satisfactoria.
||| **(502) User Not Found**: El UserName enviado no ha podido ser encontrado entre los usuarios de la instancia.
||| **(503) Campaign Not Found**: La campaña enviada no existe.
||| **(504) Campaign is not valid for this User**: El usuario enviado no tiene acceso a la campaña solicitada.
||| **(505) NewsletterName could not be found**: No se ha encontrado el newsletter solicitado para asociar al envío.
||| **(510) Profile/s Not Found**: Alguno de los PROFILE_KEY remitidos no existe.
||| **(550) Error General**: Se ha producido un error generando la pieza, visualizar los campos Message y MessageDetail para más información.

### Ejemplo PHP

```php
require_once('lib/nusoap.php');
date_default_timezone_set('UTC');
$proxyhost = isset($_POST['proxyhost']) ? $_POST['proxyhost'] : '';
$proxyport = isset($_POST['proxyport']) ? $_POST['proxyport'] : '';
$proxyusername = isset($_POST['proxyusername']) ? $_POST['proxyusername'] : '';
$proxypassword = isset($_POST['proxypassword']) ? $_POST['proxypassword'] : '';
$useCURL = isset($_POST['usecurl']) ? $_POST['usecurl'] : '0';
$client = new nusoap_client('http://domain.icommarketing.com/Deliveries.asmx?WSDL','wsdl','','','','');
$err = $client->getError();
if ($err) {
echo '<h2>Constructor error</h2><pre>' . $err . '</pre>';
exit();
}
$client->setUseCurl($useCURL);
$html = 'HTML';
$html = utf8_decode($html);
$param = Array(
"ApiKey"=>"API_KEY",
"UserName"=>"UserName",
"Campaign"=>"Campaign Name",
"NewsletterName"=>"Newsletter Name",
"FromMail"=>"newsletter@dominionews.com",
"FromName"=>"FromName",
"Subject"=>"Subject",
"ReplyMail"=>" newsletter-reply@dominionews.com ",
"Profiles"=>"PROFILE_KEY1, PROFILE_KEY1",
"StartDate"=>"2014-06-06T17:30:00.000",
"ViralMarketing"=>"true",
"SocialNetworks"=>"1,2,3,4,5",
"Testing"=>"false",
"PreHeader"=>"PreHeader",
"SendGoogleAnalyticsData"=>"true"
);
$result = $client->call('CreateConfigurationWithExistingNews',$param,",",false,true);
// Check for a fault
if ($client->fault) {
echo '<h2>Fault</h2><pre>';
print_r($result);
echo '</pre>';
} else {
// Check for errors
$err = $client->getError();
if ($err) {
// Display the error
echo '<h2>Error</h2><pre>' . $err . '</pre>';
} else {
echo '<h2>Result</h2><pre>';
$auxresponse = json_decode($client->responseData);
echo '<pre>StatusCode' . $auxresponse->{'StatusCode'} . '</pre>';
echo '<pre>Message' . $auxresponse->{'Message'} . '</pre>';
echo '<pre>MessageDetail' . $auxresponse->{'MessageDetail'} . '</pre>';
echo '<pre>Data' . $auxresponse->{'Data'} . '</pre>'; }

}
```