Connect ZoomInfo contacts and Send email in our serverless environment
Use this template to Get contacts from ZoomInfo API using them to send email messages.
Get contacts from ZoomInfo API
Used integrations:
- http
- JavaScript
- Python
class HttpSourceZoominfoContactSearch {
async init() {
this.httpClient = axios.create({
baseURL: "https://api.zoominfo.com",
});
this.jwtToken = await this.httpClient
.post("authenticate", {
username: yepcode.env.ZOOMINFO_USERNAME,
password: yepcode.env.ZOOMINFO_PASSWORD,
})
.then((response) => response.data.jwt);
}
async fetch(publish, done) {
await this.httpClient
.post(
"search/contact", {
managementLevel: "directors",
companyType: "public",
zipCode: "19101",
}, {
headers: {
Authorization: `Bearer ${this.jwtToken}`,
},
}
)
.then(async ({ data }) => {
for (const contact of data) {
await publish(contact);
}
});
done();
}
async close() {}
}
import requests
from urllib.parse import urljoin
class HttpSourceZoominfoContactSearch:
def setup(self):
self.base_url = "https://api.zoominfo.com/"
self.session = requests.Session()
response = self.session.post(
"authenticate",
json={
"username": yepcode.env.ZOOMINFO_USERNAME,
"password": yepcode.env.ZOOMINFO_PASSWORD,
},
)
response.raise_for_status()
self.jwt_token = response.json()["jwt"]
def generator(self):
response = self.session.post(
urljoin(self.base_url, "search/contacts"),
json={
"managementLevel": "directors",
"companyType": "public",
"zipCode": "19101",
},
headers={"Authorization": f"Bearer {self.jwt_token}"},
)
response.raise_for_status()
contacts = response.json()
for contact in contacts:
yield contact
def close(self):
pass
Send email messages
Used integrations:
- smtp
- JavaScript
- Python
class SmtpTargetSendEmail {
async init() {
this.smtp = nodemailer.createTransport({
host: yepcode.env.SMTP_HOST,
port: yepcode.env.SMTP_PORT,
auth: {
user: yepcode.env.SMTP_USER,
pass: yepcode.env.SMTP_PASSWORD,
},
});
this.items = [];
}
async consume(item) {
this.items.push(item);
}
async close() {
const text = `Here are the items we got:\n${this.items.map((item) => ` * ${item.id}: ${item.name}`).join("\n")}`;
await this.smtp.sendMail({
from: "your-email@example.com",
to: "the-target@example.com",
subject: `Choose your subject`,
text,
});
}
}
import smtplib
class SmtpTargetSendEmail:
def setup(self):
self.smtp = smtplib.SMTP(yepcode.env.SMTP_HOST, yepcode.env.SMTP_PORT)
self.smtp.starttls()
self.smtp.login(yepcode.env.SMTP_USER, yepcode.env.SMTP_PASSWORD)
self.items = []
def consume(self, generator, done):
for item in generator:
self.items.append(item)
done()
def close(self):
text = "Subject: Mail subject\n\n"
text += "Here are the items we got:\n"
for item in self.items:
text += f" * {item['id']}: {item['name']}\n"
self.smtp.send_mail("your-email@example.com", "the-target@example.com", text)
FAQs
What is YepCode?
YepCode is a SaaS platform that enables the creation, execution and monitoring of integrations and automations using source code in a serverless environment.
How these recipes may help me?
These recipes are an excellent starting point for creating your own YepCode processes and solving complex integration and automation problems.
How can I use YepCode?
You only have to complete the sign up form and your account will be created with our FREE plan (no credit card required).
Is YepCode just for single developers or may be used by enterprises?
YepCode has been created with a clear enterprise focus, offering a multi-tenant environment, team management capabilities, high security and auditing standards, Identity Provider (IdP) integrations, and on-premise options.