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 includerequiredFields
(array): Fields that must be providedexcludedFields
(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
Property | Type | Description |
---|---|---|
fields | object | Record fields in API format (after fieldsToApi) |
credentials | object | Authentication credentials |
parameters | object | Method-specific parameters |
Return Value
Property | Type | Description |
---|---|---|
id | string | The ID of the created record |
Updated 2 days ago