Create

The create method adds a new record to the collection.

Configuration Example

# spec.yml
name: Collection Name
methods:
  create:
    fields:
      - email
      - firstName
      - lastName
    requiredFields:
      - email
    excludedFields:
      - id
    parametersSchema:
      type: object
      properties:
        sendWelcomeEmail:
          type: boolean
          default: true

Properties:

  • fields (array): Whitelist of fields to include
  • requiredFields (array): Fields that must be provided
  • excludedFields (array): Fields to exclude from creation

Implementation Examples

REST API Mapping Implementation (Recommended)

File: create.rest.yml

path: /contacts
method: POST
requestMapping:
  body:
    email_address: { $var: $.fields.email_address }
    first_name: { $var: $.fields.first_name }
    last_name: { $var: $.fields.last_name }
    send_welcome_email: { $var: $.parameters.sendWelcomeEmail }
responseMapping:
  id: { $string: { $var: response.data.contact_id } }

Operation Mapping Implementation

File: create.yml

implementationType: operation-mapping
mapping:
  operationKey: createContact
  inputMapping:
    contactData: { $var: $.fields }
    options:
      sendWelcomeEmail: { $var: $.parameters.sendWelcomeEmail }
  outputMapping:
    id: { $string: { $var: result.contactId } }

JavaScript Implementation

File: create.js

export default async function create({ apiClient, fields, parameters }) {
  const requestBody = {
    ...fields,
    // Add any additional fields based on parameters
    send_welcome_email: parameters?.sendWelcomeEmail || true,
  }

  const response = await apiClient.post("/contacts", requestBody)

  return {
    id: String(response.data.contact_id),
  }
}

Input

PropertyTypeDescription
fieldsobjectRecord fields in API format (after fieldsToApi)
credentialsobjectAuthentication credentials
parametersobjectMethod-specific parameters

Return Value

PropertyTypeDescription
idstringThe ID of the created record