MMeeton aiDocs
EN日本語

Platform

JavaScript API

Once meeton.js has booted it exposes window.Meeton. Use it to open the chat, a calendar or a document from your own buttons, to pass hidden values into forms, and to debug the loader. Most sites never need any of this; it is here for the ones that do.

Configuration

The only required configuration is the global the snippet sets before the loader runs.

JavaScript
window.DynaMeetConfig = {
  teamId: "YOUR_TEAM_ID",   // required · UUID from Settings → Setup
  mode: "embed"              // optional · only on the inline-chat host page
};
KeyTypeMeaning
teamIdstring (UUID)Your team. Anything that is not a UUID makes the loader log a message and do nothing. If the object is missing when the script runs, the loader polls for it and boots once it appears.
mode"embed"Renders the chat inline instead of as a launcher, and suppresses marketing popups and ads. You normally get this via the inline-chat iframe rather than setting it yourself.

Methods on window.Meeton

All methods are safe to call at any time; before boot they either queue or no-op, as noted. Pair them with your own buttons, links or analytics triggers.

Meeton.openChat()

Opens the chat window exactly as a click on the launcher would. No-op before boot, on a page whose rules hide the launcher, and in embed mode, where the chat is always open.

HTML
<button onclick="window.Meeton && window.Meeton.openChat()">Ask us anything</button>

Meeton.openCalendar(options?)

Opens a booking calendar in the widget overlay. Without options it opens your default calendar.

TypeScript signature
openCalendar(options?: {
  calendarId?: string;                                   // a specific bookable calendar
  source?: "emailLink" | "otherLink" | "thankYouPage";   // how the booking is attributed
  embedded?: boolean;                                    // full-screen with a solid backdrop
}): void;

Use source: "thankYouPage" on a form thank-you page to offer a slot the instant someone converts. The same thing is available with no code at all: a link to any page on your site with ?calendarId=… in the URL opens that calendar on arrival, which is how calendar links in emails and QR codes work.

Meeton.openLibrary(options?)

Opens the Library viewer, optionally on a specific document and page. openDownloadCenter() is the older name for the same method and still works.

TypeScript signature
openLibrary(options?: {
  docId?: string;        // open straight to this document
  pageNumber?: number;   // and this page
  src?: string;          // free-text attribution, e.g. "pricing-cta"
}): void;

Meeton.openInquiryPanel(marketingOfferId)

Opens the inquiry panel of one marketing offer, so a static link on the page can do what an ad click does.

Meeton.setHiddenValues(values)

Lead forms can include hidden fields configured as From your page. This method supplies their values, keyed by the field's property name. It merges into the current bag, so call it again whenever a value changes. Safe to call before boot.

JavaScript
// Declare values before the loader runs…
window.meetonHiddenValues = { plan: "enterprise", campaign: "spring-webinar" };

// …or update them at any time afterwards.
window.Meeton.setHiddenValues({ plan: "pro" });

The values reach every open frame at once: the chat, any ad or marketing popup, the calendar form and the Library.

Meeton.recordLead(fields) deprecated

Kept so older integrations do not break, but it is now a no-op: the form watcher identifies visitors from your forms automatically, so there is nothing left for this call to do. You can leave it in place or remove it.

Lifecycle: boot(), bootEngagedVisitor(), tearDown()

The loader boots itself on page load. These exist for single-page apps that mount and unmount the whole page, and for tests. tearDown() removes the widget frame, closes the live connection and detaches the form and navigation watchers; boot() brings it all back. You will not normally call them.

Forms the tag already understands

You do not need the API to identify visitors from your forms. The loader watches the forms already on your pages for the recognised contact fields above. A value is staged when the visitor leaves the field, and becomes a contact only once the submission is confirmed: a HubSpot form's success message or redirect, a thank-you page, or your CRM receiving it. Unrecognised fields are ignored, passwords and payment fields are never read, and watching stops once the visitor is known.

Note

HubSpot forms get special handling. Both the legacy inline embed and the v4 forms embed are detected, including the redirect URL they announce on success, and the identity is forwarded to HubSpot's own tracking queue (_hsq) when the HubSpot script is present, so the HubSpot contact and the Meeton visitor line up.

Links from Meeton Email

Links in emails that Meeton sends carry a contact reference, dmContactId, in the query string. When the visitor lands, the loader ties the click to the visit that follows, so the chat already knows who it is talking to. Nothing is required on your side; keep the parameter if you rewrite URLs on arrival.

Debugging

The loader logs through the debug library under the dynameet:meeton namespace. Turn it on in the browser console and reload:

Browser console
localStorage.debug = "dynameet:*";   // then reload the page
// Expect lines like: "Generated new visitorId: …", "Set cookie dynameetVisitorId …"
// A silent console with the tag present usually means: bot detected, domain not allowed, or plain HTTP.

localStorage.removeItem("debug");    // turn it off again
SymptomLikely causeCheck
Nothing renders, no log linesPage is plain HTTP, or an ad blocker blocks app.dynameet.aiThe Network tab: is meeton.js loaded at all?
"teamId is not a valid UUID"Wrong or truncated ID in the snippetCopy the snippet again from Settings → Setup
Config request returns 403Hostname is not on the allow-listSettings → Setup → Domains; add the host or a wildcard
Widget loads, chat replies never arrive liveA corporate proxy blocks WebSocketsAllow wss://api-ws.dynameet.ai; chat still works over HTTPS meanwhile
Same person counted as two visitorsSafari cleared storage after 7 days without interaction, or a private windowSee Browser behaviour
© DynaMeet, Inc.Trust & securityContact