New
- New conversations can follow working hours. In Settings > Chat Modes, select Follow Working Hours, then set a time zone and the hours for each day. During the hours, new conversations start with your team. Outside them, the AI answers, or your team answers later and the visitor gets your away message one time. Zendesk and Zoho SalesIQ do not use working hours. See Answer during working hours.
-
In API v2, the
chat-modesettings section acceptsworkingHoursand returns it withcurrentMode, which tells how a conversation that starts now begins. When a visitor message gets the away message, the API v2 and API v0 responses include it asawayMessage. See Answer during working hours. -
Get a lead email each time a returning visitor fills out the lead form again. Turn on Email for every form submission in Leads > Leads Settings. The email has
Returning Leadin the subject and shows the values of that submission. It is off by default. See Get each lead by email. -
The remote MCP server has a new
open_sitegpttool. It opens a SiteGPT home view with a chatbot switcher and tabs for your inbox, escalations, leads, analytics, and knowledge. See MCP server. -
The remote MCP server has two new tools,
read_sitegpt_settingsandupdate_sitegpt_settings. They read and change lead email notifications, human handoff, how new conversations start, and hide sources, for the first 10 chatbots in your chatbot list. See MCP server. -
The remote MCP server has a new
open_sitegpt_inboxtool, named Support Inbox. It opens the SiteGPT home view as a panel inside a conversation in apps that support panels. See MCP server. -
Reply to visitors from ChatGPT, Claude, and other AI assistants. The remote MCP server has a new
reply_to_conversationtool, and the inbox and escalations views have a reply form. If the AI still answers the conversation, the reply takes it over first. See MCP server. -
API v2 has a new endpoint to reply to the visitor as your team:
POST /chatbots/{chatbotId}/conversations/{threadId}/replies. See API conventions. -
Connect an AI assistant with read-only access. On the MCP approval page, select Read only under Access. The assistant can then read your data, but it cannot create, change, or delete anything. Write calls return
403 TOKEN_SCOPE_NOT_ALLOWED. See Connect with read-only access. - A conversation in Chat History shows whether SiteGPT emailed your reply to the visitor, or why it did not, under your last reply. See See whether the visitor got the email.
- Lock a conversation that your team holds without a lock, for example after a team member replied or when it started in human mode. Open the … menu at the top of the conversation and select Lock conversation. The visitor can then no longer select Continue with AI. Before, you had to select Release to AI and then Take over the chat. See Lock a conversation that your team holds.
-
Chat History shows where each conversation started: Website, API, WhatsApp, Messenger, Slack, Google Chat, Crisp, Freshdesk, Zoho SalesIQ, or Zendesk. In the list, conversations from the API and integrations show the source icon. The source also shows at the top of an open conversation and in Conversation Details. Open Filter and select a source to see only its conversations. The CSV export follows the filter. In API v2, conversations have a
sourcefield, and the conversation list accepts asourcefilter. See Sources. - Let visitors choose the AI or a person. In Settings > Chat Modes, select Let the Visitor Choose, and set the question and the two button labels. On the website widget and WhatsApp, a new conversation starts with the question. The person button hands the conversation to your team and escalates it. Other channels start with the AI. See Let the visitor choose the AI or a person.
-
In API v2, the
chat-modesettings section accepts and returnsvisitorChoice. In the MCP server,chatModecan beVISITOR_CHOICEinread_sitegpt_settingsandupdate_sitegpt_settings. See Set visitor choice with API v2 and Appearance and settings tools. - Photos that visitors send on WhatsApp show in the conversation in Chat History. Select a photo to open it full size in a new tab. Other files show as a link with the file name and size. When a photo or file is the newest message and has no answer yet, the conversation list shows its caption, or its type and file name. Older conversations show the same way. See Read a conversation.
-
When a visitor asks for a person during your team’s hours, they now wait for your team in the chat. The website widget hands the conversation over at once, with no confirmation dialog and no request for an email address, and shows your new message for this case. Outside the hours, the widget works as before, and WhatsApp and Messenger send your away message. Your team’s hours are the schedule of Follow Working Hours, or of Use your team’s hours, a new check box under Let the Visitor Choose. In API v2,
workingHoursacceptsliveMessage. See Connect visitors to your team during your hours. - An invited person accepts or declines an invite on the Chatbots page, under Pending Invitations, after they sign in. This also works after the Accept invitation button in the email expired. Signing in alone, also in the iPhone app, no longer accepts an invite. See Accept or decline an invite.
- Your chatbot can now answer email. Give it its own email address on the Integrations page, and forward your current support address to it if you like. The chatbot answers in the same email thread, or writes drafts that your team sends, edits, or discards in Chat History. Rules decide what happens to emails by sender, To address, or subject. Email conversations show the source Email, and your team’s replies from Chat History go out as emails. Under each reply, a line says what happened to the email, for example “Emailed and delivered.” or “Draft: not sent yet.” The AI leaves out answers that the customer never received. Email needs the AI Email Support add-on. See Email.
-
In API v2, an email conversation has drafts endpoints to list, send, and discard the AI’s drafts. Team replies with
POST /chatbots/{chatbotId}/conversations/{threadId}/repliesgo out by email. Conversations have thesourcevalueemail. Thereply_to_conversationtool of the MCP server emails the reply too. See Email and API conventions. - A visitor’s answer to the email with your team’s reply now comes back into the conversation, for every chatbot outside HIPAA workspaces. The email says “You can reply to this email.”, the answer shows in the conversation, and your team gets a “New email reply” email. See When the visitor answers the email.
-
Replies from Chat History in a Messenger conversation now go to the person in Messenger, from your Facebook Page. Before, they stayed in SiteGPT, and your team had to reply from the Page inbox. Meta delivers a reply within 24 hours of the person’s last message, or up to 7 days later if your Meta app has Meta’s Human Agent approval. Replies longer than 2,000 characters are shortened for Messenger. When a reply is not delivered, it stays in the transcript, and SiteGPT says why. API v2 replies and the
reply_to_conversationMCP tool now work for Messenger conversations too. Instead of409 REPLY_IN_CHANNEL, API v2 returnschannelDelivery, and the MCP tool returnsdelivery. See Reply from the dashboard.
Improved
- Lead emails list the custom fields in the order and with the labels that you set in the lead form. The page URL comes last. See Get each lead by email.
- Team invites now arrive as an invitation email with the subject
You are invited to <chatbot name> on SiteGPT, with the name of the person who invited, the role, and an Accept invitation button. Before, the invite was a plain sign-in email. See Invite a team member. - An invited person could join by signing in to SiteGPT with the invited email address, also after the Accept invitation button expired (later retired). Before, after the link expired, you had to delete the invite and invite the person again. See Accept or decline an invite.
- In HIPAA workspaces, the remote MCP server no longer returns conversations, leads, or escalations to ChatGPT, Claude, or other AI assistants. These calls return
403 HIPAA_AI_ASSISTANTS_DISABLED. See MCP server. - SiteGPT CLI 0.6.0 is available. In HIPAA workspaces, the local MCP server (
sitegpt mcp) now also blocks conversations and leads. Update the CLI to 0.6.0 or later. With an older CLI, the local MCP server is blocked only if you signed in withsitegpt login. With an older CLI that is signed in withsitegpt login, CLI commands for conversations and leads also fail in HIPAA workspaces. See HIPAA andHIPAA_AI_ASSISTANTS_DISABLED. - In ChatGPT and Codex, the remote MCP server no longer offers
get_onboarding_statusor the onboarding API. Agent-first onboarding is for people without an account, and these apps always sign in to an account first. See MCP server. - Your own imports, syncs, and scans no longer wait behind scheduled auto-syncs. Scheduled syncs now run in their own queue.
- The SiteGPT views in ChatGPT and other AI assistants use the light or dark theme of the app. Each conversation row shows the visitor, the last question, and the page. An open conversation has an Open in SiteGPT button that opens it in the dashboard. See MCP server.
GET /chatbotsin API v2 returns pages, withlimit(100 by default, 200 at most) andcursor. See Pagination.- Conversation lists in API v2 load much faster, also for chatbots with long histories. This includes
list_conversationsandlist_escalationsin the MCP server. - API v2 replies and visitor messages respond faster. Their responses include a
Server-Timingheader with the time of each step. - iPhone app 1.0.4: the Chatbots sheet lists every chatbot on accounts with more than 100 chatbots, and the Usage tab counts the training of every chatbot. See iPhone app.
- After a team member replies, the conversation shows Release to AI, so you give it back to the AI in one click. Before, it showed Take over the chat first. This also applies to a conversation that started in human mode. See Release to AI.
- The default away message for working hours no longer promises a reply in the chat. It now reads “Thanks for your message. Our team is offline right now and will get back to you during our working hours.” A hint below the box says that every channel sends the message and that your team cannot reply in Google Chat. Away messages that you saved keep their text. See Answer during working hours.
- Invite the same email address again with the same role to send the invitation email again. SiteGPT sends the email for the pending invite and does not create a second invite, also when you reached the member limit. In API v2, the response has
resent: true. Before, you had to delete the invite and invite the person again. See Send the invitation email again. - An invited person could join by signing in to the iPhone app with the invited email address (later retired). See iPhone app.
- The MCP settings tools now show working hours.
read_sitegpt_settingsreturnschatModeasWORKING_HOURSwhile the chatbot follows its working hours, so an AI assistant can tell you before it changes the mode.update_sitegpt_settingswithchatModeset toWORKING_HOURSturns the saved schedule on again.AIandAGENTstill turn working hours off and keep the schedule. See Appearance and settings tools. - After you select Accept invitation in an invitation email, the dashboard shows “Accepting invitation…”, then “Invitation accepted.” If the invite was already used or deleted, it shows “This invitation was already used or removed.” Before, the page stayed blank. See Accept or decline an invite.
- Links in visitor messages in Chat History are now clickable and open in a new tab. See Read a conversation.
- When a reply from Chat History cannot go to a paused WhatsApp number, the message says why and what to do. The API and the MCP server return
over_quotaas the reason. See If a number is not covered. - Messages in the chat on your website and on the hosted chat page now have a lower length limit. Near the limit, a character count shows under the message box. Over the limit, the count turns red and the send button is turned off. See Chat message length.
- The chat on your website no longer sends messages that carry their own system prompt, a copy of a chat, or a request to ignore the chatbot’s instructions. The visitor sees “This message can’t be sent. Please rephrase your question.” These messages do not count toward your messages. Context that your website sets with the widget SDK has a length limit for each of its two strings. See Add page or visitor context.
- Chatbots are now told never to show, translate, or rewrite their instructions. When a visitor asks for them, also in another language or in another form, the chatbot offers to help with questions about your business instead. This applies on your website, in integrations, and through the API. It does not limit the topics that your chatbot answers. See Write instructions.
- The chat on your website now checks your message shares for each message. When one model’s share runs out during a conversation, the next answer uses the other model. Before, an open chat kept its model until the visitor loaded the page again. See When one model’s share runs out.
- If you set Allowed Domains, your hosted chat page now opens only from the websites in the list, from embeds on them, and from your SiteGPT dashboard. A chat link that someone types, bookmarks, or opens from an email or an app shows an empty page (later changed: it now shows a message). Links to an existing conversation, such as the links in SiteGPT emails, still open. See Allow only your own websites.
- The iFrame Embed code on the Installation page now includes
referrerpolicy="strict-origin", which tells SiteGPT which website shows the chat. Iframe code that you already added keeps working. See Embed the chat page in an iframe. - The chat can ask a visitor to confirm that they are a person. A “Verify you are human” box then shows above the message box. Most visitors never see it. The chat now checks the browser before it sends each message. If an ad blocker or a company network blocks the check, the visitor sees “We couldn’t verify this browser.” and the message is not sent. See Troubleshooting.
- If you set Allowed Domains, a chat link that opens outside your websites now shows “This chat opens on its website” and says that the chat is available only on your website. Before, the page was empty. Other refused chat links, for example to a deleted chatbot, show “This chat is not available”. With Allowed Domains set, the dashboard no longer suggests that you share the chat link. See Allow only your own websites.
- When the chat refuses a message, for example “This message can’t be sent. Please rephrase your question.”, the message now stays in the message box, so the visitor can change it. Before, the visitor had to type it again. See Troubleshooting.
- Context that your website sets with the widget SDK no longer blocks messages when it contains a system prompt, a copy of a chat, or a request to ignore the chatbot’s instructions. The chat sends the visitor’s message without the context, and the browser console shows a warning for your developer. The console also warns when a context string is longer than 2,000 characters. Before, every message on the page got “This message can’t be sent. Please rephrase your question.” See Add page or visitor context.
- A WhatsApp number that the add-on does not cover now shows Connected — not answering on the Integrations page. The WhatsApp dialog says why and, for the chatbot owner, links to Billing. Before, a number paused because the add-on covered too few numbers still showed as active. See If a number is not covered.
- When every number of the WhatsApp add-on is in use, the WhatsApp dialog now shows No WhatsApp number available. and names the add-on. The chatbot owner gets a Go to Billing link, and other team members are told to ask the owner. See Connect WhatsApp.
- When the billing service refuses an add-on change, the error on the Billing page now starts with “We couldn’t make this change.” and tells you what to do. See Buy or remove an add-on.
- Each email address can have its own AI footer, in any language. On the inbox card, select AI footer. Leave it empty to use the default. See Change the AI footer.
- Each inbox card on the Email page has a Not answered list. It shows the newest emails that the AI did not answer and why, for example “It was an out-of-office reply.” Before, these emails showed nowhere. See See the emails that the AI did not answer.
- The email name that the Email page suggests now comes from your chatbot’s website in Allowed Domains first. If a name is refused, the message says why, for example “This name is reserved. Choose another.” Email setup errors now say in plain words what failed, for example “A setup step failed. Try again, or contact support if this keeps happening.” See Create the email address.
- The Gmail forwarding confirmation on the inbox card has a Done, hide this button, and it hides by itself after some days. Remove domain now asks you to confirm. See Forward your current support address and Send from your own domain.
- Messages that a visitor forwards on WhatsApp show Forwarded above the text in Chat History. The AI knows that the visitor did not write these words. Older messages show as before. See Read a conversation.
- On WhatsApp, a person who types the text of a visitor choice button, for example “Talk to a person”, now gets the same result as a tap. This also helps when WhatsApp shows the question as plain text. Before, the AI answered. See WhatsApp.
- Agent-first onboarding without an account is now limited for each network and in total. Over the limit,
sitegpt onboarding startandPOST /onboarding/agent/startreturn429 RATE_LIMITEDwith a message such as “Too many onboarding workspaces were started. Try again in 3 minutes.” and aRetry-Afterheader. See Rate limits and quotas.
Fixed
- A reply from Chat History to a WhatsApp conversation whose number was disconnected now shows “Saved to the transcript, but this WhatsApp number is disconnected.” Before, the reply looked sent, but nothing went to WhatsApp. API v2 and the MCP server return
disconnectedas the reason. See Reply from the dashboard. - Accounts with more than 100 chatbots now see all of them in
GET /chatbots(page by page), in theopen_sitegptchatbot switcher (up to 1,000 chatbots), in the chatbot list of the CLI login page, and in the Zendesk connect page. You can also limit an API token to any of these chatbots. Before, these lists stopped at 100 chatbots.GET /api/v2/limitsandsitegpt limitsnow count the quotas of every chatbot that you own, and API v0GET /chatbotsreturns every chatbot. - SiteGPT CLI 0.6.1 is available.
sitegpt chatbots listand thesitegpt_list_chatbotstool ofsitegpt mcpnow show every chatbot, not only the first 100. See Upgrade the CLI. - In API v2, open escalations now show in the conversation list with
escalated=truealso when the chatbot has had more than 1,000 messages since the escalation. - On a shared browser, a visitor who signs in with identity verification no longer sees the conversation of the person who used the widget before. See Identity verification.
- When you approve SiteGPT again in ChatGPT or another AI assistant, the app’s other connections to SiteGPT stay connected. Before, approving again ended the other connection, and ChatGPT asked you to connect again. If ChatGPT still asks, connect once more. See Permissions.
- When a visitor answers an email with your team’s reply, the answer now goes to the chatbot’s Support Email, as the setting describes (later changed outside HIPAA workspaces: the answer comes back into the conversation). If no valid Support Email is set, it goes to the first address in the escalation email list or the chatbot owner, as before. See When SiteGPT emails your reply to the visitor.
- Invites sent with API v2 or
sitegpt members invitenow use the same invitation email as the dashboard, and the person arrives signed in. Invite email addresses sent with API v2 are now saved in lowercase, so they match the person’s account. See Add a team member. - After a visitor submits the lead form, the AI no longer escalates the conversation only because of the form. It thanks the visitor and continues to help. This happened most often with the After N messages trigger. Auto-escalate on lead capture still escalates when it is on. See Hand the conversation to your team after a lead.
- A website or sitemap crawl that runs longer than 25 minutes now continues where it stopped. Before, it stopped, and the next sync started again from the first page, so pages deep in a large site were not found. See Add your website.
- A sync no longer stays in processing when its last pages fail, for example pages that return 404. It now completes, and the failed pages show as failed. See Fix failed links.
- A document that stays in processing for 2 days is now tried again by itself, or marked as failed so that you can resync it. Before, it could stay in processing for good. See Fix failed links.
- Inviting a person who is already a member of the chatbot now says so, and SiteGPT sends no invite. Before, SiteGPT created a pending invite and sent the invitation email. API v2 now returns
409 MEMBER_ALREADY_EXISTS. See Invite a team member. - Inviting an email address that has a pending invite with another role now asks you to cancel that invite first. Before, a second invite to the same email address showed an error on the Members page, and API v2 returned
500. API v2 now returns409 MEMBER_INVITE_PENDING. See Invite a team member. - When SiteGPT saves an invite but cannot send its email, the Members page now says so. Before, nothing showed. Invite the same email address again to send it. See Invite a team member.
- Older invites saved with capital letters in the email address can now be accepted. See Invite a team member.
- Saving a settings page no longer resets the settings that a turned-off switch disables. For example, saving Leads Settings while lead notifications are off keeps Email for every form submission. This also applies to the Human Support button texts and switches, the icon background color in Appearance, and Max Messages Per Conversation in Settings > General. See Get each lead by email.
- The MCP approval page now sums up every permission that the app gets, including billing management, API tokens, and integrations. A request for only read permissions shows read-only summaries. See Permissions.
- The API v2 reference for team members now matches the API: invite roles are
AGENT,MANAGER,ADMIN, andSUPER_ADMIN, the list of pending invites ispendingInvites, and canceling an invite needsmembers:write. See API v2. - The chat icon on your website can now be sharp at the 4XL and 5XL sizes. Before, the widget showed a 96x96 px image stretched to the larger button. For a sharp icon, upload an image of at least 156x156 px. Smaller sizes load the same image as before. See Change the chat icon.
- iPhone app 1.0.5: in the Chatbots sheet, a chatbot whose conversations have not loaded shows “Open to see activity” until you open it. Before, it showed “All quiet”, also when conversations needed you. See iPhone app.
- Sign-in links now work also when an email security tool, for example Microsoft Safe Links, only opens them before you do. The link now opens a page where you select Continue to SiteGPT to finish signing in, and SiteGPT uses the link only then. This also applies to the Accept invitation button in invitation emails. Before, the tool used up the link, and your own click showed “Sign-in failed.” See Sign in.
- Limit Messages Per Conversation now follows the plan of the chatbot owner, in Settings > General, API v2, and the CLI. Every team member who can change settings can now change it when the owner’s plan includes it. Before, the setting checked the plan of the signed-in person, so team members whose own plan did not include it saw a lock on the chatbot of a Growth owner, and API v2 returned
403 RATE_LIMITS_NOT_AVAILABLE. A team member whose own plan includes the setting can no longer change it on a chatbot whose owner’s plan does not include it. See Limit messages per conversation. - Answers in the chat widget no longer wait for smart follow-up suggestions. From October 14 to 15, links in many answers stayed plain text for a long time, the copy and feedback buttons showed late, and no smart follow-up suggestions showed. Replies on WhatsApp and Google Chat, and API v0 replies that asked for
includeSmartPrompts, were also slow. Now the answer shows at once with its links and buttons, and the smart follow-up suggestions show a moment later. If they are not ready in time, the answer shows without them. See Follow-up suggestions. - Sending an invite no longer adds the person to the chatbot before they accept. From October 6, the person became a member as soon as SiteGPT sent the invitation email. See Invite a team member.
- After a chatbot transfer, the moved WhatsApp number now counts as the new owner’s newest number. If their add-on does not cover all their numbers, the moved number pauses. Before, it could pause a number that the new owner already had. See If a number is not covered.
- When smart follow-up suggestions are not ready in time, replies no longer include empty suggestions. API v0 no longer returns empty strings in
smartPrompts, Google Chat shows no empty buttons, and WhatsApp keeps your own follow-up buttons. See Follow-up suggestions. - Limit Messages Per Conversation now applies only while the plan of the chatbot owner includes it. Before, a limit that was turned on before a downgrade kept stopping conversations, and nobody on the team could turn it off. SiteGPT keeps the saved number, and the limit applies again when the plan includes the setting again. See Limit messages per conversation.
- Limit Messages Per Conversation now also applies to visitor messages sent through API v0 and API v2. A message to a conversation at the limit fails with
429 MESSAGE_LIMIT_REACHED, and the chatbot does not answer. Start a new conversation to continue. This also applies to thesend_chat_messagetool of the MCP server,sitegpt messages send, and the SDKs. WhatsApp, the other chat integrations, and email are not limited. See Rate limits and quotas. - Let the Visitor Choose now asks visitors only while Enable Human Support is on. Before, the person button showed also with human support off, and on WhatsApp the conversation then went to your team, so the AI did not answer. Now the AI answers, and Settings > Chat Modes shows a note under the option. See Let the visitor choose the AI or a person.
- Your team’s replies in WhatsApp and Messenger conversations are no longer also emailed to the visitor. Before, a visitor whose email address SiteGPT had got each reply twice: in the app and by email. These conversations no longer show a line such as “Not emailed: the visitor has no email address.” under your replies, also for older replies. See When SiteGPT emails your reply to the visitor.
- On WhatsApp and Messenger with Follow Working Hours and Your team answers later, a visitor who asks for a person outside your hours gets your away message one time. Before, the visitor’s next message got the same away message again. See Answer during working hours.
- A document whose processing stopped before it finished now shows “Processing stopped before it finished. Resync the document to train it.” on its Failed badge. Before, it showed the general “Processing failed. Please try syncing again or contact support.” See Fix failed links.
- If the page that a sign-in link opens is reloaded before you select Continue to SiteGPT, it now says that the page no longer has your sign-in link and that you can open the link from your email again, with a Back to sign in button. Before, it showed “Sign-in failed.” although the link still worked. See Sign in.
- In a resolved email conversation, the AI’s draft now shows “Not sent: the conversation was resolved.” Before, it showed “Draft: not sent yet.” although it could not be sent. See Work with drafts.
- Email history now matches the line under each message, for example Emailed instead of Sending. The count of emails that were not delivered no longer includes emails that were delivered and then marked as spam. See See what happened to each reply.
- A reply from your team that the email service could not take at the time now shows “Not sent: the email service could not take it at the time. Send it again.” Before, it said that the email service refused it. See See what happened to each reply.
- When the email service refuses a draft, the message now gives the reason one time, for example “The email service refused this email (firewall). It was not sent.” This also applies to the
SEND_REFUSEDerror of API v2. See Reply from Chat History. - The Email card on the Integrations page shows Removing while email is removed and Setup stopped when setup stops. Before, it showed Setting up. See Integrations.
- The draft card in an email conversation no longer shows the subject as “Re: Re:”. See Work with drafts.