Email scraper/parser -> + connect to vbout

Dear Community,

My colleague @Maarten already posted this question but we are finaly testing it on ActivePieces.
Here is the link to the previous post.

We’ve had an answer from @Dennis and was hoping for some extra help from the community.

What have we done so far?

We’ve added the code the Dennis wrote:

exports.code = async function code(inputs) {
    const emailContent = inputs.emailContent;

    const extractInformation = (key, content) => {
        const regex = new RegExp(`${key}:\\s*(.*?)\\s*(?=\\n|$)`, 's');
        const match = content.match(regex);
        return match ? match[1].trim() : null;
    };

    return {
        name: extractInformation('Name', emailContent),
        email: extractInformation('Email', emailContent),
        phone: extractInformation('Phone', emailContent),
        company: extractInformation('Company', emailContent),
        industry: extractInformation('Industry', emailContent),
        stateProvince: extractInformation('State/Province', emailContent),
        country: extractInformation('Country', emailContent),
        activationDate: extractInformation('Activation Date', emailContent),
        activationEndDate: extractInformation('Activation End Date', emailContent)
    };
};

We got an error and the A.I. function changed it to: But tested this, it worked but got the “sample data” back with John Doe. We turned it back to the code Dennis wrote and now have the same result

exports.code = async function code(inputs) {
const emailContent = inputs.emailContent;
const extractInformation = (key, content) => {
const regex = new RegExp(${key}:\\s*(.*?)\\s*(?=\\n|$), ‘s’);
const match = content ? content.match(regex) : null;
return match ? match[1].trim() : null;
};
return {
name: extractInformation(‘Name’, emailContent),
email: extractInformation(‘Email’, emailContent),
phone: extractInformation(‘Phone’, emailContent),
company: extractInformation(‘Company’, emailContent),
industry: extractInformation(‘Industry’, emailContent),
stateProvince: extractInformation(‘State/Province’, emailContent),
country: extractInformation(‘Country’, emailContent),
activationDate: extractInformation(‘Activation Date’, emailContent),
activationEndDate: extractInformation(‘Activation End Date’, emailContent)
};
};

As far as I can see it only generates Demo data. Because in the previous step it got other information in the mail. This is the output:

{
  "name": "John Doe\\nEmail: example@example.com\\nPhone: 123-456-7890\\nCompany: ActiveCompany\\nIndustry: Tech\\nState/Province: CA\\nCountry: USA\\nActivation Date: 2022-01-01\\nActivation End Date: 2022-01-31\"",
  "email": "example@example.com\\nPhone: 123-456-7890\\nCompany: ActiveCompany\\nIndustry: Tech\\nState/Province: CA\\nCountry: USA\\nActivation Date: 2022-01-01\\nActivation End Date: 2022-01-31\"",
  "phone": "123-456-7890\\nCompany: ActiveCompany\\nIndustry: Tech\\nState/Province: CA\\nCountry: USA\\nActivation Date: 2022-01-01\\nActivation End Date: 2022-01-31\"",
  "company": "ActiveCompany\\nIndustry: Tech\\nState/Province: CA\\nCountry: USA\\nActivation Date: 2022-01-01\\nActivation End Date: 2022-01-31\"",
  "industry": "Tech\\nState/Province: CA\\nCountry: USA\\nActivation Date: 2022-01-01\\nActivation End Date: 2022-01-31\"",
  "stateProvince": "CA\\nCountry: USA\\nActivation Date: 2022-01-01\\nActivation End Date: 2022-01-31\"",
  "country": "USA\\nActivation Date: 2022-01-01\\nActivation End Date: 2022-01-31\"",
  "activationDate": "2022-01-01\\nActivation End Date: 2022-01-31\"",
  "activationEndDate": "2022-01-31\""
}

Is there anything I am not seeing or doing wrong? Maybe there is someone that can help me.

Hello @mktmttr , Welcome to the community :wave:,

Did you get the output from the code mentioned in this post? Also, are the sample text inputs mentioned in the related post the same for every email, as this code only works then?

Thank you for your response. This is what I got back after pushing ‘test’.

If you’re looking to connect an email scraper/parser to Vbout, it’s pretty easy. First, you’ll want to ensure that the scraper/parser you’re using can pull the data in a structured format—this will make it easier to push into Vbout later on. Once the emails are scraped and organized, you can use an integration tool or an API to link the two. Vbout has a lot of integration options, so it should be pretty straightforward if you’re using a tool like Zapier or Integromat. Another good idea is to check out email lookup tools to clean up the data before you send it over. It’s always a good idea to ensure the emails you’re importing are valid and not bouncing around. It’ll save you a lot of headaches in the long run.