Skip to content

This project wraps around the basic MailChimp API, and gives you an easier and more readable solution for requesting data.

License

Notifications You must be signed in to change notification settings

ReindertKorver/MailChimpWrapper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MailChimpWrapper

This project wraps around the basic MailChimp API, and gives you an easier and more readable solution for requesting data.

Nuget package: MailChimpWrapper

Usage

Initialize the client:

MailChimpWrapper.MailChimpClient client = new MailChimpWrapper.MailChimpClient("APIKEY", "SERVER");

Ping

PingResponse pingResult = await client.GetRequest<PingResponse>(Endpoints.Ping);

Root

RootResponse rootresp = await client.GetRequest<RootResponse>(Endpoints.Root);

Lists (Audiences)

Get multiple

ListsResponse listsResult = await client.GetRequest<ListsResponse>(Endpoints.Lists);

Get by id

ListResponse listResult = await client.Request<ListGetRequest, ListResponse>(new ListGetRequest("ID"));

List Members

Post

var listMembers = new List<Member>() { new Member(){
            EmailAddress="emailaddress",
            EmailClient="Outlook",
            Language="En",
            Status="subscribed",
            EmailType="html"
        }
    };
ListMembersResponse listMembersResponse = await client.Request<ListMembersPostRequest, ListMembersResponse>(new ListMembersPostRequest("listId", listMembers));

Member Tags

Get

MemberTagsResponse memberTagsResponse = await client.Request<MemberTagsGetRequest, MemberTagsResponse>(new MemberTagsGetRequest("listId", "emailaddress"));

Add tag to member in list

Note: Because the Api doesn't return any content there is no response.

await client.Request(new MemberTagsPostRequest("listId", "emailaddress", new List<Tag>() { new Tag() { Name = "tagName", Status = "active/inactive" } }));

Campaigns

Get all

var listCampaigns = await client.GetRequest<CampaignsResponse>(Endpoints.Campaigns);

Get by id

CampaignResponse campaign = await client.Request<CampaignGetRequest, CampaignResponse>(new CampaignGetRequest("campaignId"));

Post new

var newCampaign = await client.Request<CampaignNewPostRequest, CampaignResponse>(new CampaignNewPostRequest(CampaignType.regular));

Send/Resend

await client.Request(new CampaignSendRequest(campaign.Id));
await client.Request(new CampaignResendRequest(campaign.Id));

Delete campaign

await client.Request(new CampaignDeleteRequest(campaign.Id));

Guides

Batch Subscribe/Unsubscribe Member to List(Audience)

This guide will show you how to subscribe and also unsubscribe batches of members.

  1. Create a list of members:
List<Member> members = new List<Member>();
  1. Add a member to the list, change newMember.Status to one of the possible values: "subscribed", "unsubscribed", "cleaned", or "pending".
Member newMember = new Member();
newMember.Status = "subscribed";
newMember.MergeFields = new Dictionary<string, object>();
newMember.EmailAddress = "Emailaddress";
newMember.MergeFields = new Dictionary<string, object>()
{
    {"FNAME","FirstName"},
    {"LNAME","LastName"},
};
members.Add(newMember);
  1. Create the batch subscribe request
var response = await MailChimpService.Client.Request<BatchSubscribeUnsubscribeRequest, BatchSubscribeUnsubscribeResponse>(
    new BatchSubscribeUnsubscribeRequest("YOUR LISTID")
    {
        Members = members,
        UpdateExisting = true,
    });
  1. Check the amount of created members
var amountOfNewMembers = response.NewMembers;

Add List(Audience) to campaign

This guide will explain how to edit a campaign and add you existing audience to it.

  1. Get the campaign by id:
CampaignResponse campaign = await client.Request<CampaignGetRequest, CampaignResponse>(new CampaignGetRequest("YOUR CAMPAIGNID"));
  1. Edit their Recipients:
Recipients recipients = campaign.Recipients;
recipients.ListId = "YOUR LISTID";
  1. Create a campaign edit request, inside the new request add the new recipients:
CampaignEditRequest campaignEditRequest = new CampaignEditRequest(campaign.Id) { Recipients = recipients };
  1. Now request the edit of the campaign using the client:
CampaignResponse updatedCampaign = await client.Request<CampaignEditRequest, CampaignResponse>(campaignEditRequest);

Error handling:

try
{
    //request
}
catch (ResponseException responseException)
{
    var message = responseException.ErrorResponse.Detail;
}
catch (UnknownResponseException unknownException)
{
    var response = unknownException.ResponseMessage;
}

Note: This project is in a very early stage!

About

This project wraps around the basic MailChimp API, and gives you an easier and more readable solution for requesting data.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages