with SendinBlue and OpenSRS?
Emit new event when triggered by a marketing event
Emit new event when the DNS/ZONE check has passed or failed at the registry. See the documentation
Emit new event when triggered by a transactional event
Emit new event for each new domain registration. See the documentation
Emit new event when the status of a domain transfer changes. See the documentation
Initiate a domain transfer to OpenSRS. See the documentation
Send transactional email. See the docs for more information.
Update DNS records for a specified domain. See the documentation
The SendinBlue API offers a suite of email marketing tools, including campaign creation, contact list management, and transactional email sending. It's designed for crafting personalized messages, automating marketing workflows, and tracking the performance of email campaigns. With Pipedream, you can harness the power of SendinBlue by automating interactions with other services, reacting to events with custom code, and stitching together complex workflows with minimal effort.
import { axios } from "@pipedream/platform"
export default defineComponent({
props: {
sendinblue: {
type: "app",
app: "sendinblue",
}
},
async run({steps, $}) {
return await axios($, {
url: `https://api.sendinblue.com/v3/account`,
headers: {
"api-key": `${this.sendinblue.$auth.api_key}`,
"content-type": `application/json`,
},
})
},
})
import { axios } from "@pipedream/platform";
import crypto from 'crypto';
export default defineComponent({
props: {
opensrs: {
type: "app",
app: "opensrs",
}
},
async run({steps, $}) {
const connectionDetails = {
reseller_username: this.opensrs.$auth.reseller_username,
api_key: this.opensrs.$auth.api_key,
api_host_port: this.opensrs.$auth.api_host_port
};
//Payload of the request
const xml = `<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">LOOKUP</item>
<item key="object">DOMAIN</item>
<item key="attributes">
<dt_assoc>
<item key="domain">${this.opensrs.$auth.domain}</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>`;
// Generate signature
const generateSignature = (xml, apiKey) => {
let md5 = crypto.createHash('md5');
md5.update(xml + apiKey);
let firstHash = md5.digest('hex');
md5 = crypto.createHash('md5');
md5.update(firstHash + apiKey);
return md5.digest('hex');
};
const signature = generateSignature(xml, connectionDetails.api_key);
// Prepare and call OpenSRS API
const headers = {
'Content-Type': 'text/xml',
'X-Username': connectionDetails.reseller_username,
'X-Signature': signature
};
return await axios($, {
method: "POST",
url: connectionDetails.api_host_port,
headers,
data: xml
});
},
})