Load Data into Portal 2.0 from a data source
Elisa Dinsmore avatar
Written by Elisa Dinsmore
Updated over a week ago

Here is the code in order to load data into Flatfile from a data source for Portal 2.0:

import FlatfileImporter from "@flatfile/adapter";
import $ from "jquery";
import CONTACTS from "../contacts.csv";

//create SOURCE_CSV from api call
async function getData() {
const mockarooResponse = await $.get({
url: "https://api.mockaroo.com/api/11a99530?count=50&key=411d6570"
});
return mockarooResponse;
}

const passedInData1 = {
source: [
{
data: { firstName: "John", lastName: "Smith", email: "jane@doe" }
},
{
data: { firstName: "Jane", lastName: "Doe", email: "jane@doe" }
}
]
};

const passedInData = {
source: `first name,last name,email
John,Doe,johndoe.com
Jane,Doe,jane@doe`
};

const importer = new FlatfileImporter("16468f12-68df-409e-9b59-fcb426c11c97", {
fields: [
{
label: "First Name",
key: "firstName"
},
{
label: "Last Name",
key: "lastName"
},
{
label: "Email Address",
key: "email",
validators: [
{
validate: "unique"
}
]
}
],
type: "People",
allowInvalidSubmit: false,
managed: true,
allowCustom: true,
disableManualInput: false,
displayEncoding: true,
devMode: false
});

importer.setCustomer({
userId: "19234",
name: "Foo Bar"
});

$("#launchNoPreload").click(function () {
importer
.requestDataFromUser()
.then(function (results) {
importer.displaySuccess("Thanks for your data.");
$("#raw_output").text(JSON.stringify(results.data, " ", 2));
})
.catch(function (error) {
console.info(error || "window close");
});
});

$("#launchStaticPreload").click(function () {
importer
.requestDataFromUser(passedInData)
.then(function (results) {
importer.displaySuccess("Thanks for your data.");
$("#raw_output").text(JSON.stringify(results.data, " ", 2));
})
.catch(function (error) {
console.info(error || "window close");
});
});

$("#launchFilePreload").click(function () {
const SOURCE_CSV = CONTACTS;
importer
.requestDataFromUser({
source: SOURCE_CSV
})
.then(function (results) {
importer.displaySuccess("Thanks for your data.");
$("#raw_output").text(JSON.stringify(results.data, " ", 2));
})
.catch(function (error) {
console.info(error || "window close");
});
});

$("#launchAPIPreload").click(function () {
getData().then((csvData) => {
const SOURCE_CSV = csvData;
importer
.requestDataFromUser({
source: SOURCE_CSV
})
.then(function (results) {
importer.displaySuccess("Thanks for your data.");
$("#raw_output").text(JSON.stringify(results.data, " ", 2));
})
.catch(function (error) {
console.info(error || "window close");
});
});
});
Did this answer your question?