Back to VNET SOLUTIONS

Integration reference

Developer guide

The current adapter registry and the installed email transport contract, with the boundary between a declared capability and a live integration made explicit.

01 / Registry

Declared adapter actions

These statuses are read from the app’s adapter capability registry. Anunsupportedaction is unavailable in this registry.

Adapter action capability registry
AdapterActionStatus
bookingcheck_availabilityunsupported
bookingcreate_bookingunsupported
dispatchdispatch_requestunsupported
crmupsert_contactunsupported
messagingsend_emailsupported
messagingsend_smsunsupported
marketingcreate_campaignunsupported
marketingadd_subscriberunsupported

Unknown keys fail closed. An adapter or action absent from this table resolves tounsupported.

Support is a declaration. Live use also depends on a connected provider supporting the action and the business enabling it. The status alone does not establish business configuration or availability.

02 / Supported action

messaging.send_email

This action is marked supported in the registry. The installed email module provides a server-side sendEmail() transport through the Polsia email proxy. This does not assert that a separate external email provider integration is connected or enabled.

Inputs

to · required
Recipient email address.
subject · required
Message subject.
html · required
HTML message body.
text · optional
Plain-text body. When omitted, it is derived from the HTML by removing tags and normalising whitespace.
replyToEmailId · optional
The id of an existing received message to thread a reply onto. This is a message id, not a custom Reply-To address.

Server call

Call the helper from server-side application code. Its optional second argument accepts a caller-provided abort signal; the transport also applies a 30-second request deadline.

import { sendEmail } from '@/lib/email/send';

await sendEmail(
  {
    to: 'recipient@example.test',
    subject: 'Sample subject',
    html: '<p>Sample message</p>',
  },
  { signal: request.signal },
);

Example address and message are placeholders. Omit the second argument when no caller cancellation signal is needed.

Transport limits

sendEmail() returns an id for a stored outbound message. The id is an empty string when the recipient is suppressed and no message is sent. A non-empty id is not proof of delivery; this transport does not promise delivery.

The proxy does not support attachments, cc/bcc, a custom From address, or a custom Reply-To address. Unsupported options must not be treated as sent or completed.

03 / Runtime boundary

Report only confirmed outcomes

Registry support does not create a live adapter, configure a business, establish provider support, or enable an action for that business. The email transport described here uses the Polsia email proxy; it does not mean an external email integration has been activated.

Unsupported or unavailable actions must not be represented as completed. Use the relevant integration’s documented API when one is implemented and configured, or hand the work to a person. The registry by itself does not provide a generic integration API or a completion receipt.