@elasticemail/elasticemail-client-ts-axios
Version:
Official ElasticEmail SDK. This API is based on the REST API architecture, allowing the user to easily manage their data with this resource-based approach.
127 lines (97 loc) • 3.69 kB
Markdown
# Add Campaign
This is a guide how to create campaign in an easy way using JavaScript or TypeScript.
*Required Access Level: ModifyCampaigns*
## What's a campaign?
It is sending an email to the group of contacts. To send a campaign you must first create a template (which becomes the email) and you need contacts (the people who receive the email).
## Preparation
Create a new TypeScript file `snippet.ts` and open it in editor of your preference eg. Visual Studio Code (https://code.visualstudio.com/)
## Let's dig into the code
Put the below code to your file.
Import classes and interfaces you want to use:
```javascript
import { Configuration, CampaignsApi, Campaign } from '@elasticemail/elasticemail-client-ts-axios';
```
Create config including your apikey:
```javascript
const config = new Configuration({
apiKey: "YOUR_API_KEY"
});
```
Create an instance of CampaignsApi that will be used to create a campaign.
```javascript
const campaignsApi = new CampaignsApi(config);
```
Create an example campaign object:
- Name: defines campaign name by which you can identify it later
- Recipients: define your audience
- Content: 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.
```javascript
const newCampaign = {
Name: 'New campaign',
Recipients: {
ListNames: ['my list name'],
SegmentNames: null,
},
Content: [{
From: 'myemail@address.com',
ReplyTo: 'myemail@address.com',
TemplateName: 'your_template',
Subject: 'Hello'
}],
Status: 'Draft'
}; // interface Campaign from '@elasticemail/elasticemail-client-ts-axios'
};
```
Create a function calling `campaignsPost` method from the API to create a campaign. You may include console logs called when response comes back.
In case of error it will display error details, otherwise it will display a success message and chosen details about newly created campaign.
```javascript
const addCampaign = (newCampaign: Campaign): void => {
campaignsApi.campaignsPost(newCampaign).then((response) => {
console.log('API called successfully.');
console.log(response.data);
}).catch((error) => {
console.error(error);
});
}
```
And finally, call `addCampaign` function with proper arguments:
```javascript
addCampaign(newCampaign);
```
## The whole code to copy and paste:
```javascript
/* Initialization */
import { Configuration, CampaignsApi, Campaign } from '@elasticemail/elasticemail-client-ts-axios';
/* Generate and use your API key */
const config = new Configuration({
apiKey: "YOUR_API_KEY"
});
const campaignsApi = new CampaignsApi(config);
const newCampaign = {
Name: 'New campaign',
Recipients: {
ListNames: ["my list name"],
SegmentNames: null,
},
Content: [{
From: 'myemail@address.com',
ReplyTo: 'myemail@address.com',
TemplateName: "your_template",
Subject: 'Hello'
}],
Status: "selected_status"
}; // interface Campaign from '@elasticemail/elasticemail-client-ts-axios'
const addCampaign = (newCampaign: Campaign): void => {
campaignsApi.campaignsPost(newCampaign).then((response) => {
console.log('API called successfully.');
console.log(response.data);
}).catch((error) => {
console.error(error);
});
};
addCampaign(newCampaign);
```