Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
132 changes: 23 additions & 109 deletions examples/functions/addCampaign.md
Original file line number Diff line number Diff line change
@@ -1,118 +1,29 @@
# Add Campaign

This guide will walk you through the process of creating your first campaign using the Python library.

*Required Access Level: ModifyCampaigns*

## What's a campaign?
When using Elastic Email, when you send an email to any group of contacts we call that a "campaign".

To send a campaign you need a template (which becomes the email body itself) and you need contacts (the recipients who receive the email).

## Preparation
Install Python 3.

Install ElasticEmail library.

Eg. run in terminal `pip install ElasticEmail` to install from PyPi repository.

Create a new Python file `snippet.py` and open it in editor of your preference eg. PyCharm (https://www.jetbrains.com/pycharm/download/)

## Let's dig into the code

Put the below code to your file.

Load libraries using below code:
This example is aligned with the current SDK and can be run directly from `examples/functions/addCampaign.py`.

```python
import ElasticEmail
from ElasticEmail.apis.tags import campaigns_api
from ElasticEmail.model.campaign import Campaign
from ElasticEmail.model.campaign_recipient import CampaignRecipient
from ElasticEmail.model.campaign_status import CampaignStatus
from ElasticEmail.model.campaign_template import CampaignTemplate
from ElasticEmail.models.campaign import Campaign
from ElasticEmail.models.campaign_recipient import CampaignRecipient
from ElasticEmail.models.campaign_status import CampaignStatus
from ElasticEmail.models.campaign_template import CampaignTemplate
from pprint import pprint
```

Generate and use your API key (remember to check a required access level).

Defining the host is optional and defaults to https://api.elasticemail.com/v4

```python
# Defining the host is optional and defaults to https://api.elasticemail.com/v4
configuration = ElasticEmail.Configuration()
configuration.api_key['apikey'] = 'YOUR_API_KEY'
```

Pass configuration to an api client and make it instance available under `api_client` name:
```
with ElasticEmail.ApiClient(configuration) as api_client:
```

Create an instance of CampaignsApi that will be used to create a campaign.

```python
api_instance = campaigns_api.CampaignsApi(api_client)
```

Create an example campaign object:
- Name: defines campaign name by which you can identify it later
- Recipients: define your audience
- Conent: define your message details
- Status: define status in which campaign should be created

> Find out more by checking our API's documentation: https://elasticemail.com/developers/api-documentation/rest-api#operation/campaignsPost

Send will be triggered immediately or postponed, depending on given options.
Because we define `Status` as `Draft`, so in this case it will be postponed and campaign will be added to drafts.


```python
campaign = Campaign(
Content=[
CampaignTemplate(
From="example@email.test",
ReplyTo="example@email.test",
Subject="Hello",
TemplateName="hello_template",
),
],
Name="hello campaign",
Status=CampaignStatus("Draft"),
Recipients=CampaignRecipient(
list_names=[
"my list name",
],
),
)
```

Use try & except block to call `campaigns_post` method from the API to create a campaign:

```python
try:
api_response = api_instance.campaigns_post(body = campaign)
pprint(api_response)
except ElasticEmail.ApiException as e:
print("Exception when calling CampaignsApi->campaigns_post: %s\n" % e)
```


## The whole code to copy and paste:

```python
import ElasticEmail
from ElasticEmail.apis.tags import campaigns_api
from ElasticEmail.model.campaign import Campaign
from ElasticEmail.model.campaign_recipient import CampaignRecipient
from ElasticEmail.model.campaign_status import CampaignStatus
from ElasticEmail.model.campaign_template import CampaignTemplate
from pprint import pprint

configuration = ElasticEmail.Configuration()
configuration.api_key['apikey'] = 'YOUR_API_KEY'
# Configure API key authorization: apikey
configuration.api_key['apikey'] = '6E313A3326A5C0A3D0C5F32916BE6EE3E858AA4C068829DEF4B6D21E0A12971AD60B3F92330DFDD1F193916BDE8444AF'

"""
Add Campaign
Example api call that creates a new campaign.
Send will be triggered immediately or postponed, depending on given options.
"""
with ElasticEmail.ApiClient(configuration) as api_client:
api_instance = campaigns_api.CampaignsApi(api_client)
# Create an instance of the API class
api_instance = ElasticEmail.CampaignsApi(api_client)

campaign = Campaign(
Content=[
Expand All @@ -130,16 +41,19 @@ with ElasticEmail.ApiClient(configuration) as api_client:
"my list name",
],
),
)
) # Campaign | JSON representation of a campaign

# example passing only required values which don't have defaults set
try:
api_response = api_instance.campaigns_post(body = campaign)
# Add Campaign
api_response = api_instance.campaigns_post(campaign=campaign)
pprint(api_response)
except ElasticEmail.ApiException as e:
print("Exception when calling CampaignsApi->campaigns_post: %s\n" % e)
```

## Run the code
```
python3 snippet.py
Run with:

```bash
py -3 addCampaign.py
```
13 changes: 6 additions & 7 deletions examples/functions/addCampaign.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
import ElasticEmail
from ElasticEmail.apis.tags import campaigns_api
from ElasticEmail.model.campaign import Campaign
from ElasticEmail.model.campaign_recipient import CampaignRecipient
from ElasticEmail.model.campaign_status import CampaignStatus
from ElasticEmail.model.campaign_template import CampaignTemplate
from ElasticEmail.models.campaign import Campaign
from ElasticEmail.models.campaign_recipient import CampaignRecipient
from ElasticEmail.models.campaign_status import CampaignStatus
from ElasticEmail.models.campaign_template import CampaignTemplate
from pprint import pprint

# Defining the host is optional and defaults to https://api.elasticemail.com/v4
Expand All @@ -19,7 +18,7 @@
"""
with ElasticEmail.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = campaigns_api.CampaignsApi(api_client)
api_instance = ElasticEmail.CampaignsApi(api_client)

campaign = Campaign(
Content=[
Expand All @@ -42,7 +41,7 @@
# example passing only required values which don't have defaults set
try:
# Add Campaign
api_response = api_instance.campaigns_post(body = campaign)
api_response = api_instance.campaigns_post(campaign=campaign)
pprint(api_response)
except ElasticEmail.ApiException as e:
print("Exception when calling CampaignsApi->campaigns_post: %s\n" % e)
123 changes: 22 additions & 101 deletions examples/functions/addContacts.md
Original file line number Diff line number Diff line change
@@ -1,130 +1,51 @@
# Add Contacts

This guide will walk you through the process of adding new contacts to your account using the Python library.

*Required Access Level: ModifyContacts*

## What's contact?
When using Elastic Email, you send emails to contacts – recipients who receive your emails. Contacts can be grouped by created segments or lists.

## Preparation
Install Python 3.

Install ElasticEmail library.

Eg. run in terminal `pip install ElasticEmail` to install from PyPi repository.

Create a new Python file `snippet.py` and open it in editor of your preference eg. PyCharm (https://www.jetbrains.com/pycharm/download/)

## Let's dig into the code

Put the below code to your file.

Load libraries using below code:
This example is aligned with the current SDK and can be run directly from `examples/functions/addContacts.py`.

```python
import ElasticEmail
from ElasticEmail.apis.tags import contacts_api
from ElasticEmail.model.contact_status import ContactStatus
from ElasticEmail.model.contact_payload import ContactPayload
from ElasticEmail.models.contact_status import ContactStatus
from ElasticEmail.models.contact_payload import ContactPayload
from pprint import pprint
```

Generate and use your API key (remember to check a required access level).

Defining the host is optional and defaults to https://api.elasticemail.com/v4

```python
# Defining the host is optional and defaults to https://api.elasticemail.com/v4
configuration = ElasticEmail.Configuration()
configuration.api_key['apikey'] = 'YOUR_API_KEY'
```

Pass configuration to an api client and make it instance available under `api_client` name:
```
with ElasticEmail.ApiClient(configuration) as api_client:
```

Create an instance of ContactsApi that will be used to add contacts.

```python
api_instance = contacts_api.ContactsApi(api_client)
```

Create an array with new contacts.

You can pass an array with up to 1000 contacts.

The `Email` field is mandatory, the rest is optional.

> Find out more by checking our API's documentation: https://elasticemail.com/developers/api-documentation/rest-api#operation/contactsPost


```python
contact_payload = [
ContactPayload(
Email="johnsmith@domain.com",
Status=ContactStatus("Active"),
FirstName="John",
LastName="Smith",
),
]
```

Specify an existing list name in options, otherwise contacts will be added to all contacts.

```python
list_names = [
"New list",
]
```


Use try & except block to call `contacts_post` method from the API to add contacts:

```python
try:
api_response = api_instance.contacts_post(body = contact_payload, query_params = {'listnames': list_names})
pprint(api_response)
except ElasticEmail.ApiException as e:
print("Exception when calling ContactsApi->contacts_post: %s\n" % e)
```


## The whole code to copy and paste:

```python
import ElasticEmail
from ElasticEmail.apis.tags import contacts_api
from ElasticEmail.model.contact_status import ContactStatus
from ElasticEmail.model.contact_payload import ContactPayload
from pprint import pprint

configuration = ElasticEmail.Configuration()
configuration.api_key['apikey'] = 'YOUR_API_KEY'
# Configure API key authorization: apikey
configuration.api_key['apikey'] = '6E313A3326A5C0A3D0C5F32916BE6EE3E858AA4C068829DEF4B6D21E0A12971AD60B3F92330DFDD1F193916BDE8444AF'

"""
Add contacts
Example api call that adds new contacts.
Pass array with contact details to add up to 1000 contacts.
Specify a list name in options or add to all contacts.
"""
with ElasticEmail.ApiClient(configuration) as api_client:
api_instance = contacts_api.ContactsApi(api_client)
# Create an instance of the API class
api_instance = ElasticEmail.ContactsApi(api_client)
contact_payload = [
ContactPayload(
Email="johnsmith@domain.com",
Status=ContactStatus("Active"),
FirstName="John",
LastName="Smith",
),
]
] # [ContactPayload]

list_names = [
"New list",
]
] # [str] | Names of lists to which the uploaded contacts should be added to (optional)

try:
api_response = api_instance.contacts_post(body = contact_payload, query_params = {'listnames': list_names})
# Add Contact
api_response = api_instance.contacts_post(contact_payload=contact_payload, listnames=list_names)
pprint(api_response)
except ElasticEmail.ApiException as e:
print("Exception when calling ContactsApi->contacts_post: %s\n" % e)
```

## Run the code
```
python3 snippet.py
Run with:

```bash
py -3 addContacts.py
```
9 changes: 4 additions & 5 deletions examples/functions/addContacts.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import ElasticEmail
from ElasticEmail.apis.tags import contacts_api
from ElasticEmail.model.contact_status import ContactStatus
from ElasticEmail.model.contact_payload import ContactPayload
from ElasticEmail.models.contact_status import ContactStatus
from ElasticEmail.models.contact_payload import ContactPayload
from pprint import pprint

# Defining the host is optional and defaults to https://api.elasticemail.com/v4
Expand All @@ -18,7 +17,7 @@
"""
with ElasticEmail.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = contacts_api.ContactsApi(api_client)
api_instance = ElasticEmail.ContactsApi(api_client)
contact_payload = [
ContactPayload(
Email="johnsmith@domain.com",
Expand All @@ -34,7 +33,7 @@

try:
# Add Contact
api_response = api_instance.contacts_post(body = contact_payload, query_params = {'listnames': list_names})
api_response = api_instance.contacts_post(contact_payload=contact_payload, listnames=list_names)
pprint(api_response)
except ElasticEmail.ApiException as e:
print("Exception when calling ContactsApi->contacts_post: %s\n" % e)
Loading