with Outseta and OpenSRS?
Emit new event when the DNS/ZONE check has passed or failed at the registry. See the documentation
Emit new event for each new domain registration. See the documentation
Emit new event when an account is added. See the documentation
Emit new event when the status of a domain transfer changes. See the documentation
The Outseta API provides a versatile set of endpoints for interacting with a company's CRM, subscription billing, customer support, and email marketing functionalities. With this API on Pipedream, you can automate tasks, synchronize data across platforms, and build powerful workflows that cater to various aspects of SaaS business operations. Pipedream's serverless execution model enables integrating Outseta's services with numerous other apps without managing infrastructure, focusing on logic and efficiency.
import { axios } from "@pipedream/platform"
export default defineComponent({
props: {
outseta_: {
type: "app",
app: "outseta",
}
},
async run({steps, $}) {
return await axios($, {
url: `https://${this.outseta.$auth.domain}.outseta.com/api/v1/crm/people`,
headers: {
"Authorization": `Outseta ${this.outseta.$auth.api_key}:${this.outseta.$auth.api_secret}`,
"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
});
},
})