I came to Sendgrid needing transactional email, and it's fine for that. Now I would like to send email to large groups and have the ability for recipients to unsubscribe. From reading the Sendgrid guides, it appears I want to use Marketing campaigns. However from the READMEs here, I can't tell if it's supported.
I found this very old issue from 2015 (#202) about adding support for the Market API which was closed with "it's on our roadmap." Is it supported yet?
The closest thing I found is the contactsdb endpoints:
POST /contactdb/recipients
PUT /marketing/contacts
It's not clear from the docs if recipients added via contactsdb endpoints can they be used by marketing campaigns. I've read all the info I can find and I've come to a dead end.
In addition, all the examples use a request object, and it's not shown where that is defined.
Thanks for your help.
I have the same issue. I want to send a campaign to all my contacts with a template and dynamic template data. From what I understand I can't send dynamic template data with the Marketing campaigns (at least I tried and the data doesn't display in the email). Just for the information I used these endpoints:
POST /marketing/singlesends
PATCH /marketing/singlesends
PUT /marketing/singlesends/{campaign_id}/schedule
So that leaves me with the regular mail sending. But I need to retrieve all my contacts first. With the new API, this endpoint:
GET /marketing/contacts
apparently only allows me to retrieve the last 50 contacts. I can't find a way to retrieve all my contacts.
Anything new on this?
I'm also facing the same issue.
I also want to send a mail to a list of subscribers in case of an event.
_GET /marketing/contacts_ only gives 50 contacts.
Single Send should do the trick and I was told it handles dynamic data.
But I can't figure out how to trigger a Single Send:
On the documentation site (https://sendgrid.api-docs.io/v3.0/single-sends/create-single-send) it only works if I fill in the _source_ (on the query string) of an existing Single Send template.
If I leave the _source_ empty and fill the request body I get an error _json could not be unmarshalled_.

Can you provide me a working json example of the request body (including list_ids and dynamic data)?
I hope you can help.
A lot to unpack here so I'll try an answer everything.
There is no plan to add _native_ support to this library for the marketing APIs. You can use the samples here for how to interact with the SendGrid API using the lower-level client. For the request object that's not defined in most of the samples, it's just a simple object (e.g., request = {}).
The top-level marketing campaign API docs are here. There are samples requests there for how to add contacts, create segments, and create/send campaigns.
For sending dynamic templates as part of a marketing campaign, I'm not sure that's supported, or at least I haven't seen how to do it. But, do contact tags allow you to achieve what you're trying to accomplish?
Overall, these are not issues with the library itself, but more the underlying SendGrid API and marketing campaign docs. Given that, I'm inclined to close the issue since the problems are not specific to this library, aside from building out the native marketing campaigns functionality.
@datemasolutions , I have the same problem with sigle send, have you fixed it?
Have the same issue as @datemasolutions any update? (were you able to solve it?)
@cidacida and @MarkLyck : I've solved it by switching to another email client. 馃槵
I don't think it is appropriate to name the other client.
But SendGrid didn't do the job and I didn't want to invest my time to make something work that I think should be standard it this kind of tools.
The other one I've found does the job fine.
Hope this helps.
Hint: if you search for 'SendGrid' in Google, the first ad is the other client ...
@datemasolutions ahh thanks!
I'm considering finding another client too... This is pretty basic stuff that's just not working... and for so long!
This feature is really needed. I hope they build it so that we can send an email campaign with dynamic content. Otherwise, I can't programmatically build our daily newsletter together...
Most helpful comment
@cidacida and @MarkLyck : I've solved it by switching to another email client. 馃槵
I don't think it is appropriate to name the other client.
But SendGrid didn't do the job and I didn't want to invest my time to make something work that I think should be standard it this kind of tools.
The other one I've found does the job fine.
Hope this helps.
Hint: if you search for 'SendGrid' in Google, the first ad is the other client ...