list_projects
List projects available to this MCP key. Call this first, then get_email_capabilities_overview for email features.
Takes no parameters.
com.chatwithhalPublished by chatwithhal.comOfficial publisherv1.0.0Updated Oct 30, 2026
Customer conversations, help center, CRM, deals and email campaigns on HAL (chatwithhal.com).
HAL's remote MCP server lets an assistant handle customer conversations, help-center articles, CRM contacts, companies, deals and email templates in a HAL…
Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.
Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.
Read https://sourceweft.com/mcp/com.chatwithhal%2Fmcp/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.Add this to your client's mcpServers config.
{
"mcpServers": {
"hal": {
"type": "http",
"url": "https://api.chatwithhal.com/mcp",
"headers": {
"Authorization": "Bearer <YOUR_TOKEN>"
}
}
}
}List projects available to this MCP key. Call this first, then get_email_capabilities_overview for email features.
Takes no parameters.
List conversations with filters (status, spam, limit, offset). Each result says whether it is marked as spam.
spamlimitoffsetstatusproject_idproject_slugGet a conversation with its messages and attachment metadata. agents_typing lists teammates drafting a reply right now; if someone is, let them answer instead of replying over them. replied_to_email is set when the conversation started as a reply to a campaign, workflow or broadcast email. Call get_conversation_image with an image attachment ID to inspect its visual content. To incorporate HAL's own evidence-backed AI draft into your final answer, call generate_ai_response_suggestion next.
project_idproject_slugconversation_idrequiredGet an image attached to a conversation message as MCP image content so the AI client can inspect it. Images over 2 MB are resized and compressed before delivery. Use an attachment ID returned by get_conversation.
project_idproject_slugattachment_idrequiredShow the visitor and your teammates in the dashboard that a reply is being written. Call it right before you draft a reply the visitor will read, so a live agent sees the conversation is being handled. Do not call it for internal notes, for reading or summarizing, or when you are not going to reply. reply_to_conversation clears it; call again with is_typing false if you decide not to reply.
is_typingproject_idproject_slugconversation_idrequiredduration_secondsSend an agent message to a conversation. To show a help article to the visitor, write `[label](hal-article:<article id or slug>)` into the `content` of reply_to_conversation. The widget renders it as a clickable card at that spot, on its own line (it is not an inline link inside a sentence), so put it between sentences or paragraphs, e.g. "Refunds take 5 days.\n[Refund policy](hal-article:refund-policy)\nAnything else?". The label is the card title, so use the article title. Several cards in one reply are fine. Only published articles the visitor may see are accepted; each reference is checked and rewritten to the slug for the visitor's language. Find the right article with find_relevant_articles (matched to the conversation, or to your own query), or list_articles with published_only. To walk the visitor through a flow, pass `offer_guide_id` instead of writing guide markup. To send files, pass `attachments`; they are delivered with the message in the widget and in email replies.
contentproject_idattachmentsis_internalproject_slugoffer_guide_idconversation_idrequiredUpdate conversation status, assignment, snooze state, or spam. is_spam true does what "Mark as spam" does in the inbox: the conversation leaves the inbox, is marked read, and the same sender's next conversations in this project go straight to spam; is_spam false undoes it and lets the sender back in. The change is recorded in the conversation's activity as done via MCP. Use list_conversations with spam "only" to review spam.
statusis_spamproject_idproject_slugsnoozed_untilconversation_idrequiredassigned_user_idGenerate an advisory-only HAL AI reply suggestion for the latest visitor message. Call this after get_conversation, then combine HAL's draft, evidence, and confidence with the conversation messages when composing your final answer. This tool never sends a message to the visitor, even when project auto-send or AI deflection is enabled.
project_idproject_slugconversation_idrequiredList all article groups
project_idproject_slugCreate a new article group
namerequiredslugrequiredproject_iddescriptionproject_slugshow_in_helpdeskUpdate an article group
namesluggroup_idrequiredproject_idsort_orderdescriptionproject_slugshow_in_helpdeskList articles, optionally filtered by group or to published ones. To show a help article to the visitor, write `[label](hal-article:<article id or slug>)` into the `content` of reply_to_conversation. The widget renders it as a clickable card at that spot, on its own line (it is not an inline link inside a sentence), so put it between sentences or paragraphs, e.g. "Refunds take 5 days.\n[Refund policy](hal-article:refund-policy)\nAnything else?". The label is the card title, so use the article title. Several cards in one reply are fine. Only published articles the visitor may see are accepted; each reference is checked and rewritten to the slug for the visitor's language. Find the right article with find_relevant_articles (matched to the conversation, or to your own query), or list_articles with published_only.
group_idproject_idproject_slugpublished_onlyFind published help articles that fit a conversation, in the visitor's language and limited to ones this visitor may see. Matches the visitor's latest message, or `query` when given. Returns up to 6, best match first; weaker results can be only loosely related, so check the title and excerpt before sharing one. Read-only; uses no AI quota. Each result has `insert`, the exact markup to put in the reply. To show a help article to the visitor, write `[label](hal-article:<article id or slug>)` into the `content` of reply_to_conversation. The widget renders it as a clickable card at that spot, on its own line (it is not an inline link inside a sentence), so put it between sentences or paragraphs, e.g. "Refunds take 5 days.\n[Refund policy](hal-article:refund-policy)\nAnything else?". The label is the card title, so use the article title. Several cards in one reply are fine. Only published articles the visitor may see are accepted; each reference is checked and rewritten to the slug for the visitor's language. Find the right article with find_relevant_articles (matched to the conversation, or to your own query), or list_articles with published_only.
queryproject_idproject_slugconversation_idrequiredGet an article with translations
article_idrequiredproject_idproject_slugCreate an article with an initial translation
slugrequiredtitlerequiredlocalecontentrequiredgroup_idproject_idproject_slugshow_in_helpdeskUpdate article properties or upsert a translation
slugtitlelocalecontentgroup_idarticle_idrequiredproject_idsort_orderis_publishedproject_slugshow_in_helpdeskList contacts with optional search
limitoffsetsearchproject_idproject_slugGet a contact with full details, recent activity and the deals they are on
contact_idrequiredproject_idproject_slugCreate a new contact
nametagsemailnotesphonemetadataproject_idproject_slugUpdate a contact
nametagsemailnotesphonemetadatacontact_idrequiredproject_idproject_slugList CRM pipeline stages
project_idproject_slugList companies with optional search and stage filter. Includes companies with no linked contacts. Paginated.
limitoffsetsearchstage_idproject_idproject_slugRead-only CRM board: list ALL companies grouped by pipeline stage, including companies with no linked contacts and unstaged companies. Returns per-stage deal totals so agents can reconcile Won totals with company rows. Company stage and deal value mirror the company primary deal; use list_deals to see every deal, including expansions and renewals.
stage_idproject_idstage_nameproject_sluginclude_unstagedGet a company with contacts, details and its deals. The company stage and deal_value mirror its primary deal.
company_idrequiredproject_idproject_slugLink an existing contact to an existing company. The operation is idempotent and both records must belong to the selected project.
company_idrequiredcontact_idrequiredproject_idproject_slugCreate a new company
namerequirednotesdomainindustrymetadatastage_iddeal_valueproject_idproject_slugUpdate a company
namenotesdomainindustrymetadatastage_idcompany_idrequireddeal_valueproject_idproject_slugMerge a duplicate company into a keeper. Contacts, tracked events, and CRM timeline move to the keeper; the source company is deleted. Use when the same org has a HAL-generated row and a later source-system (e.g. Apollo) id row. Refuses to merge companies that already have different external ids.
project_idproject_slugkeeper_company_idrequiredsource_company_idrequiredList deals (sales opportunities). A company can have several deals: new business, expansion, renewal. Each deal has a stage, amount, expected close date, owner, next step and contacts. Filter by company, contact, stage, owner or status.
limitoffsetsearchstatusstage_idcompany_idcontact_idproject_idproject_slugowner_user_idSummarize the sales pipeline: per stage the number of deals, total and probability-weighted amount, plus open/won/lost totals, win rate and open deals whose expected close date has passed. Use list_deals for the deals themselves.
project_idproject_slugGet a deal with its company, stage, contacts and stage/amount history
deal_idrequiredproject_idproject_slugCreate a deal for a company. The company's own stage and value follow its primary deal (its newest open new-business deal).
namenotesamountsourcecontactsstage_iddeal_typenext_stepcompany_idrequiredproject_idlost_reasonproject_slug+3 moreUpdate a deal. Moving it to a 100% stage marks it won and a 0% stage marks it lost (pass lost_reason); moving it back to an open stage reopens it.
namenotesamountsourcedeal_idrequiredstage_iddeal_typenext_stepproject_idlost_reasonproject_slugowner_user_id+2 moreAdd a contact to a deal, or change their role on it
roledeal_idrequiredcontact_idrequiredproject_idproject_slugRemove a contact from a deal
deal_idrequiredcontact_idrequiredproject_idproject_slugDelete a deal. A company with no deals left drops out of the pipeline.
deal_idrequiredproject_idproject_slugOrientation for HAL email features: campaigns vs workflows vs broadcasts, templates vs project defaults vs inline design, sender domains, images, test sending, track_event, and unsubscribe/suppression. Call this before creating any campaign, workflow, broadcast, or template.
Takes no parameters.
List reusable workflow email templates for a project.
project_idproject_slugGet a reusable workflow email template.
project_idtemplate_idrequiredproject_slugNew to HAL email? Call get_email_capabilities_overview first. Create a reusable workflow email template.
namerequiredthemeblockssubjectrequiredpreheaderproject_idproject_slugtemplate_documentUpdate a reusable workflow email template.
namethemeblockssubjectpreheaderproject_idtemplate_idrequiredproject_slugtemplate_documentDelete a reusable workflow email template. Existing campaigns keep their embedded copy.
project_idtemplate_idrequiredproject_slugRender an email template preview as subject, preheader, HTML, and plain text.
themeblockssubjectpreheaderproject_idtemplate_idproject_slugworkflow_namesample_contexttemplate_documentValidate an email template and return AI-client-friendly errors.
themeblockssubjectpreheaderproject_idtemplate_idproject_slugtemplate_documentSend a workflow email template test to an account user email address only.
themeblockssubjectto_emailrequiredpreheaderproject_idtemplate_idproject_slugworkflow_namesample_contexttemplate_documentSend a test email for an existing email campaign to an account user email address only.
to_emailrequiredproject_idcampaign_idrequiredproject_slugsample_contextList email addresses suppressed for lifecycle email campaigns in a project.
limitcursorreasonproject_idproject_slugSuppress an email address so lifecycle email campaigns skip it. Defaults to category "all" (blocks everything); pass a specific category key (see list_email_categories) to block only that category.
noteemailrequiredreasoncategoryproject_idproject_slugRemove an email address from the lifecycle email suppression list. Omit category to lift every suppression on the address (bounce/complaint rows are never removed); pass category to lift only that one.
emailrequiredcategoryproject_idproject_slugCheck whether an email address is currently suppressed for lifecycle email campaigns, for a given category (default "all").
emailrequiredcategoryproject_idproject_slugList email campaigns backed by visitor workflows.
project_idproject_slugGet email campaign details.
project_idcampaign_idrequiredproject_slugList tracked lifecycle event names seen in a project.
limitproject_idproject_slugList visitor custom properties and sampled metadata keys available for campaign predicates and conditions.
project_idproject_slugcompany_sample_limitNew to HAL email? Call get_email_capabilities_overview first. Create an email campaign using campaign language instead of workflow graph internals.
namerequiredenabledtriggerrequiredfrequencyconditionsproject_idtemplate_idemail_designproject_slugdelay_secondsemail_categoryskip_unengaged+4 moreUpdate an email campaign.
nameenabledtriggerfrequencyconditionsproject_idcampaign_idrequiredtemplate_idemail_designproject_slugdelay_secondsemail_category+5 moreEnable an email campaign.
project_idcampaign_idrequiredproject_slugDisable an email campaign.
project_idcampaign_idrequiredproject_slugDelete an email campaign. Refuses if another workflow in the project still chains into it via trigger_campaign or next_campaign_id.
project_idcampaign_idrequiredproject_slugList email campaign runs with delivery, open, and click data.
limitcursorproject_idcampaign_idrequiredproject_slugGet one email campaign run with clicked URLs.
run_idrequiredproject_idcampaign_idrequiredproject_slugList a project's email categories used for per-category unsubscribe/preferences (marketing, product updates, transactional, ...). A project with no customized categories returns the built-in defaults.
project_idproject_slugReplace the full set of email categories for a project (upserts by key, removes any key not included). Refused with the referencing suppressions/broadcasts/workflows if a key still in use would be removed.
categoriesrequiredproject_idproject_slugList images in a project’s email image library, newest first. Use these for lifecycle/workflow email `image` blocks.
limitcursorproject_idproject_slugUpload an image to a project's email image library so it can be used in lifecycle/workflow email `image` blocks (email_block_types.image.url must be an absolute URL — external hosting is no longer required). Provide exactly one of data_base64 (with mime_type) or source_url. Use email_url in email image blocks (image.url).
altfilenamemime_typeproject_idsource_urldata_base64project_slugDelete an image from a project’s email image library. Remove it from any email templates first, or the image block will break.
image_idrequiredproject_idproject_slugList one-off email broadcasts for a project.
limitcursorstatusproject_idproject_slugGet a single email broadcast, including delivery/open/click counts. With an A/B test, `ab_test` has its settings, `phase` (testing, waiting, winner_sending, done, skipped, cancelled), `ends_at` (automatic winner pick), the `winner`, and `results` (test-group sent/opens/clicks/rates per variant plus a confidence score).
project_idbroadcast_idrequiredproject_slugNew to HAL email? Call get_email_capabilities_overview first. Create a draft (or scheduled, if scheduled_at is set) one-off email broadcast. Does not send anything.
namerequiredthemeblocksab_testsubjectrequiredaudiencecategorypreheaderproject_idproject_slugscheduled_atskip_unengaged+4 moreUpdate a draft or scheduled broadcast (name, email content, audience, schedule, list-hygiene or tracking options, A/B test).
namethemeblocksab_testsubjectaudiencecategorypreheaderproject_idbroadcast_idrequiredproject_slugscheduled_at+5 moreDelete a broadcast. Refused while it is actively sending.
project_idbroadcast_idrequiredproject_slugPreview who a broadcast (or a candidate audience) would reach: match count, suppressed count, contacts left out by list hygiene (invalid/disposable/role addresses, unengaged, recently emailed) per reason, and a sample.
audiencecategoryproject_idbroadcast_idproject_slugskip_unengagedskip_role_addressesskip_recently_emailedList the fields available for building a broadcast audience (contact/company builtins, sampled metadata keys, valid operators per type).
project_idproject_slugSend a test of a broadcast email to an account user email address only (never to real contacts).
variantto_emailrequiredproject_idbroadcast_idrequiredproject_slugsample_contact_idSchedule a draft (or reschedule a scheduled) broadcast to send at a future time.
project_idbroadcast_idrequiredproject_slugscheduled_atrequiredIMMEDIATELY sends this broadcast to its whole live audience - a real, irreversible email blast to real contacts, not a test. You MUST call preview_broadcast_audience first and pass its exact `count` as confirm_recipient_count; a mismatch is refused. Call get_broadcast_readiness first too: sends with blocking deliverability checks are refused. Only call this after the user has explicitly confirmed they want to send to that many recipients right now.
project_idbroadcast_idrequiredproject_slugconfirm_recipient_countrequiredCancel a scheduled, in-progress, or paused broadcast. Recipients not yet sent to are marked cancelled.
project_idbroadcast_idrequiredproject_slugList the per-recipient delivery status for a broadcast.
limitcursorstatusproject_idbroadcast_idrequiredproject_slugDeliverability checklist for a broadcast before sending: sender authentication (custom domain, DMARC, MAIL FROM/SPF), postal address, project bounce/complaint health, warm-up capacity (how many days the send will be spread over), and content lint (size, image-heavy, subject, spam phrases, link shorteners). `error` checks block sending; share warnings with the user.
project_idbroadcast_idrequiredproject_slugResume a paused broadcast. Broadcasts auto-pause when their bounce or spam-complaint rate is too high, or when a scheduled send hits a blocking deliverability check; `pause_reason` says why. Only resume after the user understands the reason and has addressed it (e.g. removed bad addresses). The remaining recipients are sent to, and it pauses again if rates stay high.
project_idbroadcast_idrequiredproject_slugEnd a broadcast's A/B test early and send the winner to the rest of the audience now, instead of waiting for the automatic pick. `ab_test.results` on get_broadcast shows each variant's open/click rates. Pass `variant` to choose it; omit it to send the current leader. This sends real email to the remaining recipients: confirm with the user first.
variantproject_idbroadcast_idrequiredproject_slugProject email reporting. Always returns: health (last 30 days across every campaign, workflow and broadcast: sent, sent_last_24h, delivered, hard bounces (bounced), soft bounces, complaints and their rates, plus the status that blocks broadcasts, and reset_at when a list-cleanup reset restarted the window), sources (the same window broken down per workflow/broadcast with delivered, hard/soft bounces, unique opens, clicks and replies), warm-up progress (only broadcasts count toward it), and the footer postal address. Pass workflow_id or broadcast_id (optionally with days; omitted = all time) to also get stats for that one campaign. Opens and clicks exclude automatic ones from security scanners and Apple Mail Privacy Protection, which are reported as automatic_opens/automatic_clicks. Replies count recipients who answered the email (auto-replies are ignored). Delivered counts only cover emails sent after delivery tracking was enabled.
daysproject_idworkflow_idbroadcast_idproject_slugSet the physical mailing address shown in the footer of every marketing/lifecycle email (required by CAN-SPAM). Pass null or an empty string to remove it. Confirm the exact address with the user first.
project_idproject_slugpostal_addressrequiredStart a fresh 30-day health window for a project that is blocked from sending broadcasts by old bounces or complaints. ONLY use this after the bounced and complained addresses have been suppressed (list_email_suppressions / suppress_email_recipient) so the same list cannot bounce again. HAL enforces this: the reset is refused, and nothing changes, if any recipient that bounced or complained in the current window is not suppressed (by a project-wide or platform-wide suppression), and a project can be reset at most once per 30 days. Once it succeeds, sends before the reset stop counting toward the project's bounce and complaint rate, and any new bounces after it count normally and can block the project again. This only resets HAL's own project health window; it does not change the Amazon SES account reputation or review status. Per-broadcast auto-pause is not affected. Cannot be undone and is logged: get explicit user confirmation, then pass confirm: true and a reason describing the cleanup (3-500 characters). Returns the updated health (including reset_at).
reasonrequiredconfirmrequiredproject_idproject_slugNew to HAL email? Call get_email_capabilities_overview first. Static reference for building visitor workflows through create_workflow/update_workflow/validate_workflow: trigger shapes, node types, graph rules, condition/predicate operators, email block types, and variable syntax.
Takes no parameters.
List visitor workflows for a project (trigger + branching graph automations), ordered by priority.
enabledproject_idproject_slugtrigger_typeGet a visitor workflow including its full node/edge graph definition.
project_idworkflow_idrequiredproject_slugValidate a visitor workflow definition without saving it. Same input as create_workflow.
namerequiredenabledpriorityfrequencydefinitionrequiredproject_idproject_slugtrigger_modetrigger_typerequiredtrigger_configNew to HAL email? Call get_email_capabilities_overview first. Create a visitor workflow: a trigger plus a branching graph of condition/send_widget_message/send_email/trigger_campaign/end nodes. Call get_workflow_builder_reference first.
namerequiredenabledpriorityfrequencydefinitionrequiredproject_idproject_slugtrigger_modetrigger_typerequiredtrigger_configUpdate a visitor workflow. Partial: only provided fields change. If trigger fields change without a new definition, the existing trigger node is synced in place.
nameenabledpriorityfrequencydefinitionproject_idworkflow_idrequiredproject_slugtrigger_modetrigger_typetrigger_configDelete a visitor workflow. Refuses if another workflow in the project still chains into it via trigger_campaign or next_campaign_id.
project_idworkflow_idrequiredproject_slugEnable or disable a visitor workflow.
enabledrequiredproject_idworkflow_idrequiredproject_slugReorder visitor workflows by priority; the first id in the list gets the highest priority.
project_idproject_slugworkflow_idsrequiredList execution history for a visitor workflow.
limitcursorproject_idworkflow_idrequiredproject_slugGet one visitor workflow execution.
project_idworkflow_idrequiredexecution_idrequiredproject_slugGet the project default email design used to seed new send_email nodes.
project_idproject_slugUpdate the project default email design (subject/preheader/theme/template_document) used to seed new send_email nodes. Merges into the project config without touching other settings.
themeblockssubjectpreheaderproject_idproject_slugtemplate_documentSend a real test email for one send_email node in a workflow to an account user email address only.
node_idto_emailrequiredproject_idworkflow_idrequiredproject_slugsample_contextList account user emails allowed as workflow/email test recipients.
Takes no parameters.
Track a lifecycle event exactly like the public track-event API. THIS CAN SEND REAL EMAILS: matching enabled api_trigger workflows fire immediately for real contacts. Use dry_run to preview matches without tracking or sending anything. Workflows only fire for events that resolve to a visitor (via user_id or email); company-only events never trigger workflows.
namerequiredemailvalueentitydry_runuser_idmetadataevent_keycompany_idproject_idoccurred_atcontact_name+2 moreList all automations for this project
project_idproject_slugGet automation details
project_idproject_slugautomation_idrequiredCreate a new automation
namerequiredenabledmessagesrequiredfrequencyproject_idproject_slugtrigger_typerequireddelay_secondstrigger_configUpdate an automation
nameenabledmessagesfrequencyproject_idproject_slugtrigger_typeautomation_idrequireddelay_secondstrigger_configEnable or disable an automation
enabledrequiredproject_idproject_slugautomation_idrequiredList all guides for this project
project_idproject_slugGet guide details
guide_idrequiredproject_idproject_slugCreate a new guide
namerequiredstepsrequiredtitleenabledfrequencystart_urlconditionsproject_iddescriptionproject_slugtrigger_typerequireddelay_seconds+2 moreUpdate a guide
namestepstitleenabledguide_idrequiredfrequencystart_urlconditionsproject_iddescriptionproject_slugtrigger_type+3 moreEnable or disable a guide
enabledrequiredguide_idrequiredproject_idproject_slugPermanently delete a guide and its execution history
guide_idrequiredproject_idproject_slugPer-guide analytics: triggers, completions, completion rate, per-step drop-off, selector misses
guide_idrequiredproject_idsince_daysproject_slugWhich guides had steps fail to anchor recently — the signal that a selector rotted in the target app
project_idsince_daysproject_slugValidate a guide's start location and step selectors against the live pages the developer is logged into. Results are recorded by the widget's authoring mode (?hal_guide_debug=1 on any page where the widget runs); this tool returns the newest snapshot per page, so a guide that spans pages reports each of them.
guide_idrequiredproject_idproject_slugAdd tags to a message. Merges with existing tags (deduplicates). If Damper integration is enabled and a tag matches tags_to_sync, pushes the conversation to Damper as feedback.
tagsrequiredmessage_idrequiredproject_idproject_slugRemove specific tags from a message
tagsrequiredmessage_idrequiredproject_idproject_slugList all tags defined for this project
project_idproject_slugGet all project tags with their usage counts
project_idproject_slugList all teams for this project with member and conversation counts
project_idproject_slugGet a team with its members
team_idrequiredproject_idproject_slugList shared macros (available to all team members)
project_idproject_slugGet a single shared macro by ID
macro_idrequiredproject_idproject_slugList all webhooks for this project
project_idproject_slugCreate a new webhook
urlrequiredeventsrequiredsecretproject_idproject_slugUpdate an existing webhook
urleventssecretenabledproject_idwebhook_idrequiredproject_slugDelete a webhook
project_idwebhook_idrequiredproject_slugGet project statistics including responsiveness, conversation volume, and per-agent metrics. Defaults to last 30 days.
end_dateproject_idstart_dateproject_slugGet the custom sender domain (Starter plan and above) configured for this project, including DNS records, verification status, and any Reply-To override (`sender_domain.reply_to`, alongside the top-level `reply_to` this project's emails actually use).
project_idproject_slugConfigure a custom sender domain for visitor-facing email on this project (Starter plan and above). Returns DNS records (DKIM CNAMEs, and MX/TXT if a mail-from subdomain is set) that the user must add themselves at their DNS provider before the domain can verify. Reply-To stays on the HAL inbound address so inbound routing keeps working, unless a Reply-To override is set afterwards with update_sender_identity.
domainrequiredlocal_partrequiredproject_idsender_nameproject_slugmail_from_subdomainRe-check the project's custom sender domain verification status against Amazon SES.
project_idproject_slugUpdate the local part, display sender name, and/or Reply-To override of the configured sender domain, without changing the domain itself. By default, Reply-To stays on the HAL inbound address so inbound routing/threading keep working. Setting `reply_to` overrides that with the given address - it must already forward into the project's HAL inbound address, or replies will be lost. Pass an empty string or omit `reply_to` as `null` to clear an existing override and revert to the HAL address.
reply_tolocal_partproject_idsender_nameproject_slugRemove the project's custom sender domain. Visitor-facing email reverts to the default Hal address.
project_idproject_slugImport a single historical conversation silently (no webhooks, no notifications). Use for migrating data from other chat platforms.
visitorrequiredmessagesrequiredproject_idconversationproject_slugImport multiple historical conversations in batch (max 100). Each conversation is imported independently — one failure does not affect others. Silent: no webhooks, no notifications.
project_idproject_slugconversationsrequired83% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
Declare a GitHub repository with a README, or serve resource_documentation in the OAuth protected-resource metadata.
A hosted service is used under its provider's terms, so no license is expected here. This check is left out of the percentage.