Supista
Contact Us
documentation
Supista ERP
Parameters
API Operations
Bulk Create

bulkCreateOp

Usage

const bulkData = await bulkCreateOp(tableName, payload);

Parameters

tableName

Name of the PostgreSQL table where multiple records will be inserted.

payload

Contains an array of objects under __d3__bulkData.

If inserting into a related table, include:

  • __d3__parentId
  • __d3__relationId

You can also optionally include:

  • __d3__updateOnDuplicate
  • __d3__conflictFields

Bulk Create Payload (Main Table)

{
  "__d3__bulkData": [
    {
      "id": 3,
      "Teachers ID": null,
      "firstName": "Test 3",
      "lastName": null,
      "lastName2": null,
      "dateOfBirth": null,
      "email": "test@.gmail.com",
      "Roll No": 12,
      "Classes": "First",
      "Courses": null,
      "New Test 1": null,
      "New Test 2": null,
      "New Test 5": null,
      "New Test 45": null,
      "Class": null
    }
  ],
  "__d3__updateOnDuplicate": false,
  "__d3__conflictFields": []
}

Bulk Create Payload (Related Table)

{
  "__d3__bulkData": [
    {
      "id": 3,
      "Teachers ID": null,
      "firstName": "Test 3",
      "lastName": null,
      "lastName2": null,
      "dateOfBirth": null,
      "email": "test@.gmail.com",
      "Roll No": 12,
      "Classes": "First",
      "Courses": null,
      "New Test 1": null,
      "New Test 2": null,
      "New Test 5": null,
      "New Test 45": null,
      "Class": null
    }
  ],
  "__d3__parentId": 1,
  "__d3__relationId": "ID of the relation",
  "__d3__updateOnDuplicate": false,
  "__d3__conflictFields": []
}

Duplicate Handling Options

__d3__updateOnDuplicate

Use true when you want to update an existing record instead of creating a new one, if the indexed column value already exists.

{
  "__d3__updateOnDuplicate": true
}

__d3__conflictFields

Defines which columns should be checked for duplication.

You can include one or multiple columns to form a custom composite index.

{
  "__d3__conflictFields": ["email"]
}

Or multiple fields:

{
  "__d3__conflictFields": ["email", "Roll No"]
}

Legacy Payload Example

{
  __d3__bulkData: [
    {
      columnName1: 'columnValue1',
      columnName2: 'columnValue2',
      columnName3: 'columnValue3',
    },
    {
      columnName1: 'columnValue1',
      columnName2: 'columnValue2',
      columnName3: 'columnValue3',
    }
  ]
}

Related Table (Legacy Format)

{
  __d3__bulkData: [
    {
      columnName1: 'columnValue1',
      columnName2: 'columnValue2',
      columnName3: 'columnValue3',
    }
  ],
  __d3__parentId: 1,
  __d3__relationId: "ID of the relation"
}

Return Value

Returns an array of newly created records from:

Sequelize dataModel.bulkCreate()

Sample bulkData Output

[
  {
    columnName1: 'columnValue1',
    columnName2: 'columnValue2',
    columnName3: 'columnValue3',
  },
  {
    columnName1: 'columnValue1',
    columnName2: 'columnValue2',
    columnName3: 'columnValue3',
  }
]

Example Code

async function customizeERP(userData, apiOperations) {
  const tableName = "table_name";
  const { bulkCreateOp } = apiOperations;
 
  return new Promise(async (resolve, reject) => {
    const payload = {
      __d3__bulkData: userData.__d3__bulkData,
      __d3__updateOnDuplicate: userData.__d3__updateOnDuplicate,
      __d3__conflictFields: userData.__d3__conflictFields
    };
 
    const bulkData = await bulkCreateOp(tableName, payload);
 
    if (bulkData) {
      resolve({ result: bulkData });
    } else {
      resolve({
        result: {},
        popupMsg: {
          type: "error",
          message: "Could Not create data! Please try again later"
        }
      });
    }
  });
}

Example Input

{
  "__d3__bulkData": [
    {
      "name": "Sample_1",
      "bio": "Sample_1",
      "create at": "2025-06-11T09:02:01.794Z"
    },
    {
      "name": "Sample_2",
      "bio": "Sample_2",
      "create at": "2025-06-11T09:02:01.794Z"
    }
  ]
}

Example Output

{
  "response": {
    "__d3__result": {
      "result": {
        "bulkCreated": 2
      }
    },
    "__d3__error": false,
    "printConsole": []
  }
}
Last updated on
Transform Data into Decisions with Supista – Your Intelligent Data Partner
AI-Powered Operational Intelligence for Growing Businesses

Automate your operations. Orchestrate your workflows. Scale with confidence.

Book a free strategy session with our Automation Experts and discover how Supista’s AI-Composable ERP can transform your operations into a scalable and intelligent system.