Pulter is an end to end data onboarding solution, that empowers your customers to clean, validate and upload your data. Pulter is very easy to setup and can be done within minutes
Let your engineers focus on the core components of your business. Pulter gives you the best spreadsheet import tool that can be implemented within minutes.
With Pulter you can get your customer's data into your system as soon as possible. Let your customers experience the core value of your product instead of battling with clunky data.
Trusting a 3rd party with your customer's data isn't easy, that's why we don't store your customer data anywhere in our platform. We provide different methods of getting your customer's data.
You can push the imported data to your favourite 3rd party app like Airtable, Notion, Google Sheets etc. You can also setup a webhook listener to receive imported data.
<Pulter isOpen={isOpen} onClose={onClose}
onSubmit={onSubmit}
fields={[
{
label: "Name",
key: "name",
alternateMatches: [
"first name",
"first"
],
fieldType: {
type: "input",
},
example: "Stephanie",
validations: [
{
// Can be "required" / "unique" / "regex"
rule: "required",
errorMessage: "Name is required",
level: "error",
},
],
},
]}
rowHook={(data, addError) => {
// Validation
if (data.name === "Stephen") {
addError("name",
{ message: "No Stephens allowed",
level: "warning" })
}
// Transformation
return { ...data,
name: "Stephen not allowed"
}
// Sorry Stephen
}}
initialStepState={{
type: StepType.matchColumns,
data: [
["Josh", "2"],
["Charlie", "3"],
["Lena", "50"],
],
headerValues: ["name", "age"],
}}
customTheme={{
colors: {
background: 'white',
rsi: {
50: '...',
500: 'teal',
900: "...",
},
},
components: {
Button: {
baseStyle: {
borderRadius: "none",
},
defaultProps: {
colorScheme: "yellow",
},
},
},
}}
translations={{
uploadStep: {
title: "Upload Employees",
},
}}
allowInvalidSubmit= {false}
maxRecords={100}
maxFileSize={1048576}
autoMapHeaders={true}
autoMapDistance={2}
/>
<Pulter isOpen={isOpen} onClose={onClose}
onSubmit={onSubmit}
fields={[
{
label: "Name",
key: "name",
alternateMatches: [
"first name",
"first"
],
fieldType: {
type: "input",
},
example: "Stephanie",
validations: [
{
// Can be "required" / "unique" / "regex"
rule: "required",
errorMessage: "Name is required",
level: "error",
},
],
},
]}
rowHook={(data, addError) => {
// Validation
if (data.name === "Stephen") {
addError("name",
{ message: "No Stephens allowed",
level: "warning" })
}
// Transformation
return { ...data,
name: "Stephen not allowed"
}
// Sorry Stephen
}}
initialStepState={{
type: StepType.matchColumns,
data: [
["Josh", "2"],
["Charlie", "3"],
["Lena", "50"],
],
headerValues: ["name", "age"],
}}
customTheme={{
colors: {
background: 'white',
rsi: {
50: '...',
500: 'teal',
900: "...",
},
},
components: {
Button: {
baseStyle: {
borderRadius: "none",
},
defaultProps: {
colorScheme: "yellow",
},
},
},
}}
translations={{
uploadStep: {
title: "Upload Employees",
},
}}
allowInvalidSubmit= {false}
maxRecords={100}
maxFileSize={1048576}
autoMapHeaders={true}
autoMapDistance={2}
/>
import { Pulter } from '@pulter/react';
<Pulter templateId={'cl3xnfvty0844nk991z37kh8p'}
isOpen={isOpen}
onClose={onClose}
onSubmit={onSubmit}
fields={[
{
label: "Name",
key: "name",
alternateMatches: [
"first name",
"first"
],
fieldType: {
type: "input",
},
},
]}
allowInvalidSubmit= {false}
/>
import { Pulter } from '@pulter/react';
<Pulter templateId={'cl3xnfvty0844nk991z37kh8p'}
isOpen={isOpen}
onClose={onClose}
onSubmit={onSubmit}
fields={[
{
label: "Name",
key: "name",
alternateMatches: [
"first name",
"first"
],
fieldType: {
type: "input",
},
},
]}
allowInvalidSubmit= {false}
/>
We have everything you need to build best data importing flow.
Pulter supports multiple file types CSV, Excel, multi-sheet Excel, TSV, and XML files
Automatically map columns that are most likely value to your template values, so that your users don't have to
Client side validation based on predefined sheet rules allows your users to self clean data before upload.
You can transform and validate data with custom hooks. You can also validate against external data (such as data stored in your database)
You can customize the styling of the Pulter Importer to match the style of your brand and application.
With the help of Zapier integration. You can push the imported data to your favourite 3rd party app like Airtable, Notion, Google Sheets etc.
Webhooks allow you to receive uploaded data wherever you want, as soon as it's uploaded.
You can easily translate all the texts in Pulter Importer.