Upfirst

offiziell

Upfirst ist eine KI-Telefonrezeptionistin für kleine Unternehmen. Überprüfen Sie Gesprächsprotokolle und korrigieren Sie dann Begrüßung, Wissen und Weiterleitungsregeln direkt in Ihrem KI-Client.

Was kann man mit Upfirst MCP machen?

  • Empfängerleistung prüfen — Bitten Sie Ihren Assistenten, die Anrufe der letzten Woche zu überprüfen und sie mit dem Wissen des Agents abzugleichen, um Lücken zu identifizieren und neue Trainingseinträge vorzuschlagen.

  • Empfänger anhand von Beschreibungen konfigurieren — Lassen Sie Ihren Assistenten eine Beschreibung Ihres Unternehmens und der Anrufbehandlung in einfacher Sprache in ein vollständiges Setup mit Begrüßungen, Wissen, Weiterleitungsregeln und Zeitplänen umwandeln.

  • Leistungsschwache Anrufe beheben — Weisen Sie Ihren Assistenten auf ein bestimmtes Anruftranskript hin und beschreiben Sie das gewünschte Ergebnis; er wird präzise Wissensänderungen vorschlagen, um zukünftige Anrufe zu verbessern.

  • Agenteneinstellungen verwalten — Weisen Sie Ihren Assistenten an, die Begrüßung, die Verabschiedung, den Stimmton, die Sprechgeschwindigkeit oder die Anrufblockierungseinstellungen eines Empfängers zu lesen oder zu aktualisieren.

  • Trainingsinhalte erstellen und bearbeiten — Bitten Sie Ihren Assistenten, Wissenseinträge hinzuzufügen, zu aktualisieren oder zu löschen, die mit einem oder mehreren Agents verknüpft sind, einschließlich Zeitplaneinträgen für bestimmte Geschäftszeiten.

  • Anrufweiterleitungsregeln einrichten — Weisen Sie Ihren Assistenten an, Weiterleitungsfähigkeiten mit Bedingungen, Vorweiterleitungsnachrichten, Zielnummern und wöchentlichen Zeitplänen zu konfigurieren.

Dokumentation

Verbindung

Es muss nichts installiert werden. Richten Sie Ihren Client auf https://mcp.upfirst.ai und er führt Sie durch die Anmeldung bei Upfirst, wenn er sich zum ersten Mal verbindet. Die Autorisierung ist eine Standard-OAuth-2.1-Anmeldung, es müssen also keine API-Schlüssel kopiert oder gespeichert werden.

Der Server läuft über streambares HTTP und bietet Ihrem Assistenten 25 Tools, die Ihr Konto sowohl lesen als auch ändern können. Wählen Sie unten Ihren Client aus.

Upfirst ist im Connector-Verzeichnis von Claude. Öffnen Sie claude.ai/directory/upfirst, fügen Sie Upfirst hinzu, melden Sie sich dann bei Upfirst an und genehmigen Sie den Zugriff. Es funktioniert in der Claude-Desktop-App und auf claude.ai.

Stattdessen als benutzerdefinierten Connector hinzufügen

  1. Öffnen Sie Anpassen und dann Connectors.
  2. Klicken Sie auf + und dann auf Benutzerdefinierten Connector hinzufügen.
  3. Nennen Sie ihn Upfirst und fügen Sie die URL unten als Remote-MCP-Server-URL ein.
  4. Lassen Sie die erweiterten Felder Client-ID und Client-Geheimnis leer.
  5. Klicken Sie auf Hinzufügen und dann auf Verbinden, melden Sie sich bei Upfirst an und genehmigen Sie den Zugriff.
https://mcp.upfirst.ai

Bei Team- und Enterprise-Tarifen fügt ein Inhaber den Connector einmal unter Organisationseinstellungen hinzu, und alle anderen klicken auf Verbinden.

Wie auch immer Sie sich verbinden: Der erste Aufruf öffnet die Anmeldeseite von Upfirst. Sie genehmigen den Zugriff einmal, und die Verbindung bleibt von da an an Ihre Organisation gebunden.

Konventionen

Einige Regeln gelten für jedes Tool. Jedes Tool trägt ein Tag dafür, was es mit Ihren Daten macht:

  • Lesen Ruft Daten ab; ändert nie etwas.
  • Schreiben Erstellt oder aktualisiert einen Datensatz.
  • Löschen Entfernt einen Datensatz dauerhaft. Es gibt kein Rückgängigmachen.

IDs stammen aus Listen-Tools

Agent-IDs stammen aus list_agents, Skill-IDs aus list_agent_skills, Wissens-IDs aus get_agent_knowledge, Begrüßungs-IDs aus list_agent_greetings, benutzerdefinierte Aktions-IDs aus list_custom_actions und Anruf-IDs aus list_calls. IDs sind Ziffernfolgen. Skill-Tools verwenden die ID als skillId; Wissens-, Begrüßungs- und benutzerdefinierte Aktions-Tools verwenden sie als id. Aktualisierungs- und Lösch-Tools benötigen nur diese ID. Sie verwenden kein agentId.

Datensätze sind mit Agenten verknüpft

Jeder Skill, jeder Wissenseintrag und jede benutzerdefinierte Aktion ist mit einem oder mehreren Agenten verknüpft. Erstellungs-Tools verwenden agentIds, eine Liste mit mindestens einer Agent-ID. Setzen Sie autoLinkNewAgents auf true, um den Datensatz auch jedem Agenten zu geben, den Sie später erstellen. In diesem Fall muss agentIds jeden aktuellen Agenten auflisten. Aktualisierungs-Tools ändern die Verknüpfungen nur, wenn Sie sowohl agentIds als auch autoLinkNewAgents senden. Lassen Sie beide weg, um die Verknüpfungen unverändert zu lassen. Das Bearbeiten oder Löschen eines Datensatzes ändert ihn für jeden Agenten, mit dem er verknüpft ist.

Paginierung

get_agent_knowledge, list_calls und get_call_transcript verwenden offset und limit und geben ein totalCount zurück, sodass die Seite immer aus demselben gefilterten Satz gezogen wird. Die anderen Listen-Tools geben alles in einer Antwort zurück.

Zeitzonen

Nackte Daten (YYYY-MM-DD) werden in der Zeitzone des Unternehmens gelesen. Wochenpläne werden in der eigenen Zeitzone jedes Agenten gelesen, sodass ein Eintrag, der mit Agenten in zwei Zeitzonen verknüpft ist, für jeden die lokalen Stunden befolgt. Übergeben Sie eine vollständige ISO-8601-Datumszeit, wenn Sie einen genauen Zeitpunkt benötigen.

Löschungen sind dauerhaft

Es gibt keine Wiederherstellung über diese Verbindung. Ein gelöschter Skill, Wissenseintrag oder eine benutzerdefinierte Aktion ist von jedem Agenten entfernt, mit dem er verknüpft war, und diese Agenten verwenden ihn innerhalb von Minuten nicht mehr.

Einige Einstellungen sind nur im Dashboard verfügbar

Sprache, Zeitzone und Sprache; Planungs-Skills; die OAuth-Verbindungen, über die sich eine benutzerdefinierte Aktion authentifiziert; das Löschen eines Übertragungs-Skills; und das Importieren von Website-Wissen werden im Upfirst-Dashboard verwaltet, nicht über MCP. Tools weisen darauf hin, wo dies zutrifft.

Beispielaufforderungen

Der Upfirst-MCP-Server funktioniert mit jedem kompatiblen KI-Client. Kopieren Sie zum Einstieg eine dieser Aufforderungen in Ihren Client und passen Sie sie an Ihr Unternehmen an.

Finden Sie Wissenslücken Ihres Empfangsmitarbeiters

Anwendungsfall

Verwenden Sie diesen Workflow, um die Anrufe der letzten Woche zu überprüfen und herauszufinden, wo das Wissen des Empfangsmitarbeiters nicht ausreichte, damit Sie wissen, was Sie zu seiner Schulung hinzufügen müssen.

Beispielaufforderung

Sie helfen dabei, Wissenslücken bei einem Upfirst-Empfangsmitarbeiter zu finden.

Überprüfen Sie die Anrufe der letzten sieben Tage und lesen Sie dann das aktuelle Wissen des Empfangsmitarbeiters. Achten Sie auf Fragen, die Anrufer stellten und die er nicht gut beantworten konnte, auf fehlende Informationen und darauf, dass dasselbe Thema mehr als einmal vorkam.

Zeigen Sie für jede Lücke auf die Anrufe, die sie belegen, und schlagen Sie einen spezifischen Wissenseintrag vor, der sie füllen würde, geschrieben so, wie der Empfangsmitarbeiter antworten sollte. Gruppieren Sie verwandte Lücken und ordnen Sie sie nach Häufigkeit.

Ändern Sie nichts. Präsentieren Sie die Lücken und die vorgeschlagenen Einträge zur Überprüfung.

Empfangsmitarbeiter: [Name, or leave blank for all]

Richten Sie Ihren Empfangsmitarbeiter anhand einer Beschreibung ein

Anwendungsfall

Verwenden Sie diesen Workflow, um zu beschreiben, wie Ihr Empfangsmitarbeiter Anrufe behandeln soll, und lassen Sie Ihren Assistenten das Setup erstellen: die Begrüßung, das Wissen, Übertragungsregeln, Zeitpläne und SMS-Skills.

Beispielaufforderung

Sie helfen dabei, einen Upfirst-KI-Empfangsmitarbeiter anhand einer einfachen Beschreibung zu konfigurieren, wie er Anrufe behandeln soll.

Verwandeln Sie die Beschreibung in ein vollständiges Setup: eine Begrüßung und Verabschiedung, das Wissen, das er benötigt, um häufige Fragen zu beantworten, Übertragungsregeln für Anrufe, die eine Person erreichen sollen, Zeitpläne für Informationen oder Übertragungen, die nur zu bestimmten Zeiten gelten, und alle SMS-Skills, die die Beschreibung vorsieht.

Fragen Sie nach allem Wichtigen, das die Beschreibung unklar lässt, wie Öffnungszeiten, wen Anrufe erreichen sollen oder wie mit häufigen Anfragen umzugehen ist, anstatt zu raten.

Zeigen Sie das vollständige vorgeschlagene Setup vor der Erstellung zur Überprüfung und wenden Sie es dann nach Genehmigung an.

Wie der Empfangsmitarbeiter Anrufe behandeln soll: [Describe your business, your hours, what callers usually need, and who calls should reach]

Beheben Sie einen Anruf, der nicht gut verlief

Anwendungsfall

Verwenden Sie diesen Workflow, um auf einen Anruf hinzuweisen, der nicht so verlief, wie Sie es wollten, zu sagen, was Sie bevorzugt hätten, und Ihren Assistenten das Wissen des Empfangsmitarbeiters anpassen zu lassen, damit ähnliche Anrufe besser verlaufen.

Beispielaufforderung

Sie helfen dabei, einen Upfirst-Empfangsmitarbeiter basierend auf einem Anruf zu verbessern, der nicht gut verlief.

Lesen Sie den Anruf, auf den ich hinweise, einschließlich seines Transkripts, und vergleichen Sie, was der Empfangsmitarbeiter getan hat, mit dem, was ich wollte. Finden Sie heraus, was zu dem Ergebnis führte: ob etwas in seinem Wissen fehlte, unklar war oder einem anderen Eintrag widersprach.

Schlagen Sie die spezifischen Änderungen vor, die einen solchen Anruf beim nächsten Mal besser verlaufen lassen würden, geschrieben als das genaue Wissen, das hinzugefügt oder bearbeitet werden soll, und erklären Sie, warum jede hilft.

Zeigen Sie die Änderungen vor der Anwendung zur Überprüfung und nehmen Sie dann die genehmigten Bearbeitungen vor.

Anruf: [ID or a short description of the call]
Was ich stattdessen wollte: [Describe the outcome you were hoping for]

01

Konto & Agenten

Orientieren Sie sich und lesen oder aktualisieren Sie dann einen einzelnen KI-Empfangsmitarbeiter.

Beginnen Sie hier. Eine kompakte Übersicht über das gesamte Konto: der Firmenname, jeder Empfangsmitarbeiter mit seiner Zeitzone, Begrüßung, Telefonnummern, Skills und Wissen sowie die Anzahl der in den letzten 30 Tagen bearbeiteten Anrufe.

Keine Parameter.

Gibt zurück Firmenname · Agenten (ID, Name, Zeitzone, Begrüßung, Telefonnummern, Skill- & Wissensnamen) · Anrufe in den letzten 30 Tagen (nur abgeschlossene Anrufe; Test- und archivierte Anrufe werden nicht gezählt).

Listen Sie die KI-Agenten der Organisation auf. Verwenden Sie eine zurückgegebene ID mit den agentenbezogenen Tools unten.

Keine Parameter.

Gibt Agenten zurück, jeweils mit ID und Name.

Lesen Sie die vollständigen Konversationseinstellungen eines Agenten und die zugehörigen Telefonnummern.

ParameterTypBeschreibung
agentIdstring erforderlichNumerische Agent-ID aus list_agents.

Gibt Begrüßungs- & Verabschiedungsnachrichten, Stimmton, Sprechgeschwindigkeit, Wartemusik, Zeitzone, Spam- & gebührenfreie Sperrung und zugehörige Telefonnummern zurück.

Ändern Sie die Konversationseinstellungen eines Agenten. Teilaktualisierung: Senden Sie nur, was sich ändert; mindestens ein festlegbares Feld ist erforderlich.

ParameterTypBeschreibung
agentIdstring erforderlichZu aktualisierender Agent.
greetingMessagestring optionalEröffnungsnachricht.
goodbyeMessagestring optionalAbschlussnachricht.
voiceToneenum optionalfriendly · professional
speechRatenumber optional0.7 · 0.85 · 1 · 1.1 · 1.2
holdMusicenum optionalringTone · gentleGuitar · marimba · softKeys
isSpamCallsBlockedboolean optionalVermutete Spam-Anrufe blockieren.
isTollFreeCallsBlockedboolean optionalGebührenfreie Anrufe blockieren.

Sprache, Zeitzone und Sprache werden im Dashboard verwaltet und können hier nicht geändert werden. Die beiden Sperrflags gelten organisationsweit: Das Setzen eines davon ändert es für jeden aktiven Agenten, genau wie im Dashboard. greetingMessage ist die Standardbegrüßung. Begrüßungen für bestimmte Stunden oder Daten haben ihre eigenen Tools unter Geplante Begrüßungen.

Gibt den aktualisierten Agenten in derselben Form wie get_agent_by_id zurück.

02

Geplante Begrüßungen

Eine geplante Begrüßung ist das, was ein Empfangsmitarbeiter zuerst bei Anrufen sagt, die in seinen Zeitplan fallen, wie eine Begrüßung nach Geschäftsschluss oder an Feiertagen. Jede gehört zu einem einzelnen Agenten. Wenn keine geplante Begrüßung mit der Zeit des Anrufs übereinstimmt, verwendet der Agent seine Standardbegrüßung, die mit get_agent_by_id gelesen und mit update_agent geändert wird.

Listen Sie die geplanten Begrüßungen eines Agenten auf, einschließlich inaktiver. Lesen Sie dies, bevor Sie eine Begrüßung ändern, damit nichts unsichtbar überschrieben wird.

ParameterTypBeschreibung
agentIdstring erforderlichAgent, dessen Begrüßungen aufgelistet werden sollen.

Gibt die ID jeder Begrüßung, text, das Aktiv-Flag, kind und schedule zurück. kind ist schreibgeschützt: text bedeutet, dass die Begrüßung wie geschrieben gesprochen wird, instruction bedeutet, dass der Agent die Begrüßung daraus aufbaut, und unknown bedeutet, dass sie noch nicht klassifiziert ist.

Fügen Sie einem Agenten eine geplante Begrüßung hinzu. Die Begrüßung wird nur gespeichert, wenn die gesamte Anfrage gültig ist.

ParameterTypBeschreibung
agentIdstring erforderlichAgent, zu dem die Begrüßung gehört.
textstring erforderlichDie genauen zu sagenden Worte oder eine Anweisung, wie begrüßt werden soll.
scheduleobject erforderlichWann die Begrüßung verwendet wird, in der Zeitzone des Agenten. Siehe Begrüßungszeitpläne.
isActiveboolean optionalOb die Begrüßung bei Anrufen von Anfang an verwendet wird. Standard ist true.

Der Zeitplan darf sich nicht mit einer anderen aktiven Begrüßung desselben Agenten überschneiden. Wöchentliche Stunden und Daten werden separat geprüft. kind wird vom System festgelegt: Es liest unknown direkt nach einem Schreibvorgang und wird innerhalb von Sekunden klassifiziert.

Gibt die ID der neuen Begrüßung und ihre Felder zurück.

Ändern Sie Text, Aktiv-Flag oder Zeitplan einer geplanten Begrüßung. Teilaktualisierung: Senden Sie nur, was sich ändert; mindestens ein Feld ist erforderlich.

ParameterTypBeschreibung
idstring erforderlichBegrüßungs-ID, aus list_agent_greetings.
textstring optionalNeuer Begrüßungstext.
isActiveboolean optionalOb die Begrüßung bei Anrufen verwendet wird.
scheduleobject optionalNeuer Zeitplan. Siehe Begrüßungszeitpläne.

Ein neuer Zeitplan ersetzt den gespeicherten vollständig. Lesen Sie also zuerst die Begrüßung und senden Sie den vollständigen Zeitplan zurück, den sie haben soll. Dieselbe Überschneidungsregel wie beim Erstellen gilt. Eine Textänderung setzt kind auf unknown zurück, bis sie erneut klassifiziert wird.

Gibt die Felder zurück, die das Update geschrieben hat.

Löschen Sie eine geplante Begrüßung dauerhaft.

ParameterTypBeschreibung
idstring erforderlichZu löschende Begrüßungs-ID.

Es gibt keine Möglichkeit, eine gelöschte Begrüßung wiederherzustellen. Anrufe in ihrem Zeitfenster verwenden dann eine andere passende Begrüßung oder die Standardbegrüßung des Agenten, wenn keine passt. Ein Begrüßungszeitplan hat wöchentliche Stunden in days und optionale exakte Daten in dates, alle in der Zeitzone des Agents. days verwendet dieselbe Struktur wie Zeitpläne: alle sieben Tage, jeweils mit enabled und workingPeriods. Jeder Eintrag in dates hat ein date als YYYY-MM-DD und mindestens einen Zeitbereich in periods. Ein Datumseintrag hat Vorrang vor den wöchentlichen Stunden für diesen Tag – so legen Sie eine Feiertagsbegrüßung fest.

{
  "days": {
    "monday":    { "enabled": true,  "workingPeriods": [{ "from": "17:00", "to": "23:59" }] },
    "tuesday":   { "enabled": true,  "workingPeriods": [{ "from": "17:00", "to": "23:59" }] },
    "wednesday": { "enabled": true,  "workingPeriods": [{ "from": "17:00", "to": "23:59" }] },
    "thursday":  { "enabled": true,  "workingPeriods": [{ "from": "17:00", "to": "23:59" }] },
    "friday":    { "enabled": true,  "workingPeriods": [{ "from": "17:00", "to": "23:59" }] },
    "saturday":  { "enabled": false, "workingPeriods": [] },
    "sunday":    { "enabled": false, "workingPeriods": [] }
  },
  "dates": [
    { "date": "2026-12-25", "periods": [{ "from": "00:00", "to": "23:59" }] }
  ]
}

03

Fähigkeiten

Eine Fähigkeit ist eine Aktion, die ein Empfangschef während eines Anrufs ausführen kann: dem Anrufer eine SMS senden, einen Terminplanungslink senden, den Anruf weiterleiten, einen Termin buchen oder eine externe API aufrufen. Jede Art hat ihre eigenen Werkzeuge, daher sind die übergebenen Felder immer die, die diese Art verwendet. Planungsfähigkeiten sind hier schreibgeschützt und werden über das Dashboard verwaltet. Die Einstellungen einer Webhook-Fähigkeit liegen in der benutzerdefinierten Aktion, mit der sie verknüpft ist; lesen und bearbeiten Sie sie mit den Benutzerdefinierte Aktionen-Werkzeugen unten.

Listen Sie die für einen Agent konfigurierten Fähigkeiten auf, einschließlich inaktiver, standardmäßig.

ParameterTypBeschreibung
agentIdstring erf.Agent, dessen Fähigkeiten aufgelistet werden sollen.
llmToolenum opt.Nur Fähigkeiten dieser Art: sendSms · sendScheduleSms · transferCall · scheduleSlot · customWebhook.
includeInactiveboolean opt.Deaktivierte Fähigkeiten einschließen. Standard true.

Gibt Fähigkeiten zurück: ID, Name, Slug, Art, Aktiv-Flag, gespeicherte Konfiguration, optionaler wöchentlicher Zeitplan. Eine customWebhook-Zeile hat eine leere Konfiguration und einen Webhook-Block mit URL, HTTP-Methode und Zeitpunkt der verknüpften Aktion; lesen Sie die vollständige Konfiguration mit list_custom_actions.

Ein Zeitplan wird bei Anrufen nur für Weiterleitungsfähigkeiten berücksichtigt. Andere Arten speichern einen, ignorieren ihn aber.

Fügen Sie eine SMS-Fähigkeit hinzu: eine SMS, die der Empfangschef während eines Anrufs an einen Anrufer senden kann. sendSms sendet die Nachricht wie geschrieben. sendScheduleSms sendet sie zusammen mit dem Terminplanungslink der Organisation.

ParameterTypBeschreibung
agentIdsstring[] erf.Agents, die die Fähigkeit erhalten, mindestens einer. IDs aus list_agents.
autoLinkNewAgentsboolean opt.Die Fähigkeit auch jedem später erstellten Agent geben. Wenn true, muss agentIds jeden aktuellen Agent auflisten. Standard false.
llmToolenum erf.sendSms · sendScheduleSms
namestring erf.Kurzes Label, im Dashboard angezeigt.
messagestring erf.Der SMS-Text, den der Agent sendet, bis zu 306 Zeichen.
instructionstring erf.Wann der Agent sie während eines Anrufs senden soll.
isActiveboolean opt.Von Anfang an aktiv. Standard true.

Die Nachricht durchläuft einen Inhaltsfilter, der werbliche oder anderweitig eingeschränkte Formulierungen ablehnt.

Gibt die id der neuen Fähigkeit und die gesendeten Felder zurück (llmTool, name, message, instruction, isActive). Lesen Sie die gespeicherte Fähigkeit mit list_agent_skills.

Ändern Sie eine SMS-Fähigkeit. Teilaktualisierung: Nur die gesendeten Felder ändern sich. Senden Sie mindestens ein festlegbares Feld oder eine neue Gruppe von Agents.

ParameterTypBeschreibung
skillIdstring erf.Fähigkeits-ID aus list_agent_skills.
llmToolenum opt.Zwischen sendSms und sendScheduleSms wechseln.
namestring opt.Neues Label.
messagestring opt.Neuer SMS-Text, bis zu 306 Zeichen.
instructionstring opt.Neue Anleitung, wann gesendet werden soll.
isActiveboolean opt.Fähigkeit ein- oder ausschalten.
agentIdsstring[] opt.Neue Gruppe von Agents, die die Fähigkeit erhalten. Zusammen mit autoLinkNewAgents senden oder beide weglassen, um die aktuellen Verknüpfungen zu behalten.
autoLinkNewAgentsboolean opt.Die Fähigkeit auch jedem später erstellten Agent geben. Wenn true, muss agentIds jeden aktuellen Agent auflisten.

Gibt die Felder zurück, die die Aktualisierung geschrieben hat.

Löschen Sie eine SMS-Fähigkeit dauerhaft von jedem Agent, mit dem sie verknüpft ist. Diese Agents senden diese Nachricht nicht mehr.

ParameterTypBeschreibung
skillIdstring erf.Zu löschende Fähigkeits-ID.

Es gibt keine Möglichkeit, eine gelöschte Fähigkeit wiederherzustellen. Sie wiederzubekommen bedeutet, sie von Grund auf neu zu erstellen.

Gibt { id, note } zurück, wobei note das Löschen in einfacher Sprache bestätigt.

Fügen Sie eine Weiterleitungsfähigkeit hinzu: die Regel, die einen laufenden Anruf an eine Person übergibt. condition sagt dem Agent, wann weitergeleitet werden soll, preTransferMessage ist das, was es dem Anrufer zuerst sagt, und destinations sind die Nummern, die es der Reihe nach wählt.

ParameterTypBeschreibung
agentIdsstring[] erf.Agents, die die Fähigkeit erhalten, mindestens einer. IDs aus list_agents.
autoLinkNewAgentsboolean opt.Die Fähigkeit auch jedem später erstellten Agent geben. Wenn true, muss agentIds jeden aktuellen Agent auflisten. Standard false.
namestring erf.Kurzes Label, im Dashboard angezeigt.
conditionstring erf.Wann weitergeleitet werden soll, in einfacher Sprache.
preTransferMessagestring erf.Was der Agent vor der Weiterleitung sagt.
destinationsarray erf.Ein oder mehrere Ziele, in Reihenfolge versucht, jeweils { phoneNumber, label, phoneExtension }. phoneNumber ist erforderlich und muss E.164 sein (z. B. +12025550123).
ringTimeoutSecondsnumber opt.Klingelzeit pro Ziel, 5–60.
noAnswerActionenum opt.endCall · returnToAgent
transferMethodenum opt.cold übergibt den Anrufer direkt · warm unterrichtet das Ziel zuerst.
transferCallerIdenum opt.Nummer, die das Ziel sieht: upfirstNumber · callerNumber.
recordingModeenum opt.agentOnly stoppt die Aufzeichnung bei der Weiterleitung · fullCall zeichnet danach weiter auf.
isActiveboolean opt.Von Anfang an aktiv. Standard true.
scheduleobject opt.Wöchentliche Stunden, zu denen die Fähigkeit angeboten wird, in der Zeitzone des Agents. Weglassen für immer verfügbar. Siehe Zeitpläne.

Jedes Ziel muss im selben Land wie eine der Upfirst-Nummern der verknüpften Agents liegen. Wenn weggelassen, verwendet die Fähigkeit die Dashboard-Standardeinstellungen zum Anrufzeitpunkt: 30 Sekunden Klingeln, Anruf bei Nichtantwort beenden, kalte Weiterleitung, die Upfirst-Nummer als Anruferkennung und Aufzeichnung stoppt bei der Weiterleitung.

Gibt die id der neuen Fähigkeit und die gesendeten Felder zurück. Lesen Sie die gespeicherte Fähigkeit mit list_agent_skills.

Ändern Sie eine Weiterleitungsfähigkeit. Teilaktualisierung: Nur die gesendeten Felder ändern sich. Senden Sie mindestens ein festlegbares Feld oder eine neue Gruppe von Agents.

ParameterTypBeschreibung
skillIdstring erf.Fähigkeits-ID aus list_agent_skills.
destinationsarray opt.Ersetzt die gesamte Liste. Senden Sie jede Nummer, die Sie behalten möchten.
scheduleobject opt.Ersetzt die gespeicherten Stunden. null löscht den Zeitplan und macht die Fähigkeit rund um die Uhr verfügbar.
Andere Erstellungsfelderopt.name, condition, preTransferMessage, ringTimeoutSeconds, noAnswerAction, transferMethod, transferCallerId, recordingMode, isActive. Gleiche Werte wie beim Erstellen.
agentIdsstring[] opt.Neue Gruppe von Agents, die die Fähigkeit erhalten. Zusammen mit autoLinkNewAgents senden oder beide weglassen, um die aktuellen Verknüpfungen zu behalten.
autoLinkNewAgentsboolean opt.Die Fähigkeit auch jedem später erstellten Agent geben. Wenn true, muss agentIds jeden aktuellen Agent auflisten.

Jedes Ziel muss im selben Land wie eine der Upfirst-Nummern der verknüpften Agents liegen.

Die Art einer Fähigkeit ist bei der Erstellung festgelegt. Das Übergeben der ID einer Planungs- oder Webhook-Fähigkeit wird als nicht gefunden gelesen.

Gibt die Felder zurück, die die Aktualisierung geschrieben hat.

Dafür gibt es kein Werkzeug. Weiterleitungsfähigkeiten werden im Upfirst-Dashboard gelöscht. Über MCP können Sie eine stattdessen ausschalten: Setzen Sie isActive: false mit update_transfer_call_skill, und der Agent bietet die Weiterleitung nicht mehr an, während die Fähigkeit konfiguriert bleibt.

04

Wissen

Das Wissen eines Empfangschefs ist das, woraus es Anrufern antwortet. Im Upfirst-Dashboard liegen diese Einträge unter Training. Jeder ist Text, den Sie schreiben, oder Inhalt, der von einer Website importiert wurde. Ein Eintrag kann mit mehreren Agents verknüpft sein, und das Bearbeiten oder Löschen ändert, was jeder verknüpfte Agent antwortet. Schreibvorgänge trainieren den Empfangschef automatisch innerhalb von Minuten neu.

Lesen Sie die Wissensbasis eines Agents. Jeder Eintrag wird vollständig mit seinem gesamten Inhalt zurückgegeben, niemals als Vorschau.

ParameterTypBeschreibung
agentIdstring erf.Agent, dessen Wissen gelesen werden soll.
idstring opt.Nur diesen einen Eintrag zurückgeben.
offsetnumber opt.Zu überspringende Einträge. Standard 0.
limitnumber opt.Maximale Einträge, 1–100. Standard 25.

Gibt Einträge zurück: ID, Name, Typ (Text/Website), Aktiv-Flag, vollständiger Inhalt, Quell-URL und wöchentlicher Zeitplan, plus totalCount.

Fügen Sie einen Texteintrag zum Training eines oder mehrerer Empfangschefs hinzu. Der neue Eintrag kommt an den Anfang der Liste jedes verknüpften Agents.

ParameterTypBeschreibung
agentIdsstring[] erf.Agents, die den Eintrag erhalten, mindestens einer. IDs aus list_agents.
autoLinkNewAgentsboolean opt.Den Eintrag auch jedem später erstellten Agent geben. Wenn true, muss agentIds jeden aktuellen Agent auflisten. Standard false.
namestring erf.Anzeigename des Eintrags.
contentstring erf.Klartext, bis zu 250.000 Zeichen.
isActiveboolean opt.Von Anfang an aktiv. Standard true.
scheduleobject opt.Den Eintrag auf Geschäftszeiten beschränken. Weglassen für immer aktiv. Siehe Zeitpläne.

Gibt die id, name, isActive, schedule (null bei immer aktiv) und contentLength in Zeichen des neuen Eintrags zurück. Lesen Sie den vollständigen Eintrag mit get_agent_knowledge.

Ändern Sie Name, Aktiv-Flag, Inhalt, Zeitplan oder welche Agents einen Eintrag sehen. Teilaktualisierung: Senden Sie mindestens ein festlegbares Feld oder eine neue Gruppe von Agents.

ParameterTypBeschreibung
idstring erf.Eintrags-ID aus get_agent_knowledge.
name, isActiveopt.Neuer Name / Aktiv-Flag.
contentstring opt.Neuer Text, der den gespeicherten Inhalt vollständig ersetzt. Bis zu 250.000 Zeichen.
scheduleobject opt.Neuer Zeitplan. null löscht ihn und macht den Eintrag immer verfügbar; weglassen, um den gespeicherten zu behalten.
agentIdsstring[] opt.Neue Gruppe von Agents, die den Eintrag erhalten. Zusammen mit autoLinkNewAgents senden oder beide weglassen, um die aktuellen Verknüpfungen zu behalten.
autoLinkNewAgentsboolean opt.Den Eintrag auch jedem später erstellten Agent geben. Wenn true, muss agentIds jeden aktuellen Agent auflisten.

Inhalt wird ersetzt, nie angehängt. Lesen Sie den Eintrag zuerst mit get_agent_knowledge und senden Sie den vollständigen Text zurück, den er haben soll, einschließlich dessen, was Sie behalten. Die Bearbeitung ändert, was jeder Agent sagt, der mit dem Eintrag verknüpft ist.

Gibt die Felder zurück, die die Aktualisierung geschrieben hat. Neuer Inhalt kommt als contentLength zurück, nicht als vollständiger Text.

Löschen Sie einen Wissenseintrag dauerhaft.

ParameterTypBeschreibung
idstring erf.Zu löschende Eintrags-ID.

Es gibt keine Möglichkeit, einen gelöschten Eintrag wiederherzustellen. Das Löschen entfernt ihn von jedem Agent, mit dem er verknüpft ist.

Gibt { id, note } zurück, wobei note das Löschen in einfacher Sprache bestätigt. Ein Zeitplan schränkt einen Wissenseintrag (oder eine Transfer-Fähigkeit) auf Geschäftszeiten ein, die in der Geschäftszeitzone des Agenten berücksichtigt werden. Es ist ein Objekt pro Wochentag. Jeder Zeitplan, den Sie senden, muss alle sieben Tage enthalten; ein Tag, an dem der Eintrag nicht gelten soll, ist enabled: false mit einem leeren workingPeriods. Zeiten sind 24-Stunden-HH:MM in der Zeitzone des Agenten.

Ein geplanter Eintrag ist nur während seiner Zeitfenster im Wissen des Empfangsmitarbeiters. Außerhalb dieser Fenster ist es, als ob der Eintrag nicht existiert, sodass der Empfangsmitarbeiter niemals zur falschen Zeit daraus antwortet.

Das macht Zeitpläne zu einer zuverlässigen Methode, um zeit spezifische Fakten zu behandeln. Um Öffnungs- und Schließzeiten narrensicher zu machen, fügen Sie einen Eintrag hinzu, der auf Ihre Öffnungszeiten beschränkt ist und „Wir sind derzeit geöffnet“ lautet, sowie einen zweiten, der auf Ihre Schließzeiten beschränkt ist und „Wir sind derzeit geschlossen“ lautet. Nur einer ist jemals aktiv, sodass der Empfangsmitarbeiter sie nicht verwechseln kann.

{
  "days": {
    "monday":    { "enabled": true,  "workingPeriods": [{ "from": "09:00", "to": "17:00" }] },
    "tuesday":   { "enabled": true,  "workingPeriods": [{ "from": "09:00", "to": "17:00" }] },
    "wednesday": { "enabled": true,  "workingPeriods": [{ "from": "09:00", "to": "17:00" }] },
    "thursday":  { "enabled": true,  "workingPeriods": [{ "from": "09:00", "to": "17:00" }] },
    "friday":    { "enabled": true,  "workingPeriods": [{ "from": "09:00", "to": "17:00" }] },
    "saturday":  { "enabled": false, "workingPeriods": [] },
    "sunday":    { "enabled": false, "workingPeriods": [] }
  }
}

05

Benutzerdefinierte Aktionen

Eine benutzerdefinierte Aktion ist ein Aufruf, den der Empfangsmitarbeiter an eine externe HTTP-API richtet. timing entscheidet, wann sie ausgeführt wird: before feuert vor dem Gespräch und darf nur Systemvariablen verwenden; during wird dem Agenten während des Anrufs angeboten, der anhand der Beschreibung entscheidet, ob er sie aufruft; after feuert, sobald der Anruf beendet ist, entweder jedes Mal oder wenn eine Bedingung in einfacher Sprache zutrifft.

Variablen werden in die URL, Abfrageparameter, Header und den Body als {{name}} interpoliert. Eine Aktion ist mit einem oder mehreren Agenten verknüpft, und das Bearbeiten oder Löschen ändert, was jeder verknüpfte Agent tut. In list_agent_skills ist eine customWebhook-Fähigkeit die agentenseitige Ansicht einer benutzerdefinierten Aktion. Die OAuth-Verbindungen, über die sich eine Aktion authentifizieren kann, werden im Upfirst-Dashboard eingerichtet.

Jede benutzerdefinierte Aktion, die ein Agent verwenden kann, jeweils mit ihrer gesamten Konfiguration. Lesen Sie dies, bevor Sie eine Aktion neu schreiben, damit nichts unsichtbar überschrieben wird.

ParameterTypBeschreibung
agentIdstring reqAgent, dessen Aktionen aufgelistet werden sollen. Jede mit diesem Agenten verknüpfte Aktion ist enthalten.
idstring optNur diese eine Aktion zurückgeben.

Gibt customActions zurück, jeweils mit id, agentIds (jeder Agent, mit dem die Aktion verknüpft ist), autoLinkNewAgents, Name, Beschreibung, Zeitpunkt, HTTP-Methode, URL, Authentifizierungstyp und OAuth-Verbindungs-ID, Fallback-Nachricht, Timeout, Aktiv-Flag, Variablen, Abfrageparameter, Header, zulässige Ausgabefelder, Beispielwerte, Body-Vorlage und die Bedingung nach dem Zeitpunkt.

Ein Header, dessen Name wie eine Anmeldeinformation aussieht (Token, Schlüssel, Geheimnis, Autorisierung), wird als [redacted] zurückgegeben; der echte Wert wird nie ausgelesen. Gelöschte Aktionen werden weggelassen.

Fügen Sie eine benutzerdefinierte Aktion hinzu und verknüpfen Sie sie mit einem oder mehreren Agenten.

ParameterTypBeschreibung
agentIdsstring[] reqAgenten, die die Aktion erhalten, mindestens einer. IDs aus list_agents.
autoLinkNewAgentsboolean optGeben Sie die Aktion auch jedem später erstellten Agenten. Wenn true, muss agentIds jeden aktuellen Agenten auflisten. Standard false.
namestring reqKurzes Label, das auf dem Dashboard angezeigt wird.
descriptionstring reqWas die Aktion tut, in einfacher Sprache. before- und during-Zeitpunkt legen sie dem Agenten vor, der anhand dieses Textes entscheidet, ob die API aufgerufen wird. after-Zeitpunkt ignoriert sie.
timingenum reqbefore · during · after
httpMethodenum reqGET · POST · PUT · PATCH · DELETE
urlstring reqEndpunkt, an den die Anfrage geht. Kann {{variable}}-Platzhalter enthalten.
authTypeenum reqnone sendet die Anfrage ohne Authentifizierung · bearer benötigt einen Authorization-Header in headers · customHeaders authentifiziert über die von Ihnen gelieferten Header · oauth_connection löst ein Token aus einer Verbindung auf und benötigt oauthConnectionId.
fallbackMessagestring reqWas der Agent dem Anrufer sagt, wenn die Anfrage fehlschlägt oder ein Timeout auftritt.
oauthConnectionIdstring optNumerische ID einer verbundenen OAuth-Verbindung. Erforderlich für oauth_connection, abgelehnt für jeden anderen Authentifizierungstyp. Nehmen Sie sie aus list_custom_actions von einer Aktion, die bereits eine verwendet.
variablesarray optWerte, die in die Anfrage interpoliert werden, jeweils { name, description, exampleValue, isSystem, required }. name und description sind erforderlich und Namen müssen eindeutig sein. Systemvariablen werden von Upfirst aus dem Anruf selbst ausgefüllt; benutzerdefinierte werden vom Anrufer gesammelt. Eine Aktion mit before-Zeitpunkt darf nur Systemvariablen verwenden. Standard [].
queryParamsarray optAbfragezeichenfolgen-Parameter, jeweils { key, value }. Werte dürfen Platzhalter verwenden. Standard [].
headersarray optAnforderungs-Header, jeweils { key, value }. Bearer-Authentifizierung trägt ihr Token in einem Authorization-Header hier. Senden Sie den [redacted]-Platzhalter niemals zurück. Standard [].
allowedOutputFieldsstring[] optFelder der JSON-Antwort, die der Agent lesen darf. Leer lässt die Antwort unverändert durch. Standard [].
bodyTemplatestring optAnforderungs-Body, der mit ersetzten Platzhaltern unverändert gesendet wird. Leer für keinen.
sampleValuesobject optEin Wert pro Variablennamen, der verwendet wird, wenn die Aktion ausprobiert wird.
timeoutSecondsinteger opt1–30. Standard 10.
isActiveboolean optVon Anfang an aktiv. Standard true.
conditionstring oder null optNur after-Zeitpunkt. Regel in einfacher Sprache, die gegen den abgeschlossenen Anruf geprüft wird; null feuert nach jedem Anruf. Lassen Sie es für before und during weg.

Gibt die erstellte Aktion mit ihrer neuen ID zurück.

Ändern Sie eine benutzerdefinierte Aktion. Teilweises Update: Nur die Felder, die Sie senden, ändern sich. Senden Sie mindestens ein festlegbares Feld oder einen neuen Satz von Agenten. Listen werden vollständig ersetzt, nicht zusammengeführt. Lesen Sie die Aktion daher zuerst mit list_custom_actions.

ParameterTypBeschreibung
idstring reqAktions-ID aus list_custom_actions.
agentIdsstring[] optNeuer Satz von Agenten, die die Aktion erhalten. Senden Sie ihn zusammen mit autoLinkNewAgents, oder lassen Sie beide weg, um die aktuellen Verknüpfungen beizubehalten.
autoLinkNewAgentsboolean optGeben Sie die Aktion auch jedem später erstellten Agenten. Wenn true, muss agentIds jeden aktuellen Agenten auflisten.
oauthConnectionIdstring oder null optnull löscht es. Senden Sie null im selben Aufruf, der die Aktion vom oauth_connection-Authentifizierungstyp wegbewegt.
conditionstring oder null optnull löscht es. Senden Sie null im selben Aufruf, der die Aktion vom after-Zeitpunkt wegbewegt.
variables, queryParams, headers, allowedOutputFieldsarray optJedes ersetzt seine gesamte Liste. Senden Sie jeden Eintrag, den Sie behalten möchten. Ein Header mit dem [redacted]-Platzhalter wird abgelehnt; senden Sie den echten Wert oder lassen Sie diesen Header weg.
Andere Erstellungsfelderoptname, description, timing, httpMethod, url, authType, bodyTemplate, sampleValues, fallbackMessage, timeoutSeconds, isActive. Gleiche Werte wie beim Erstellen.

Eine Aktion, die mit mehreren Agenten verknüpft ist, wird für alle bearbeitet.

Gibt die Felder zurück, die das Update geschrieben hat.

Löschen Sie eine benutzerdefinierte Aktion dauerhaft. Jeder damit verknüpfte Agent hört auf, diese API aufzurufen.

ParameterTypBeschreibung
idstring reqZu löschende Aktions-ID.

Es gibt keine Möglichkeit, eine gelöschte Aktion wiederherzustellen. Sie wiederzubekommen bedeutet, sie von Grund auf neu zu erstellen, und list_custom_actions gibt ihre Konfiguration nur zurück, solange sie noch existiert.

Gibt { id, note } zurück, wobei note das Löschen in einfacher Sprache bestätigt.

06

Anrufe

Lesen Sie den Anrufverlauf des Unternehmens, die Details eines einzelnen Anrufs und dessen Transkript. Nur abgeschlossene Anrufe erscheinen; ein Anruf erscheint kurz nach seinem Ende.

Listen Sie den Anrufverlauf auf und filtern Sie ihn, die neuesten zuerst. Kompakte Zeilen ohne Transkripte oder Zusammenfassungen (verwenden Sie dafür die folgenden Tools).

ParameterTypBeschreibung
statusesenum[] optNach Ergebnis filtern, jeder Anruf hat genau eines: test · blocked · spam · hungUp · completed.
querystring optFreitextsuche über Anrufzusammenfassungen und Transkripte.
tagsstring[] optAnrufe abgleichen, die eines dieser Tags tragen (nach Name oder ID).
startDatedate optBloßes YYYY-MM-DD = Kalendertag in der Geschäftszeitzone oder eine vollständige ISO-Datumszeit.
endDatedate optWie oben; inklusive.
archivedboolean optArchivierte Anrufe statt aktiver zurückgeben. Standard false.
offset, limitnumber optPaginierung. limit ist 1–100, Standard 25.

Gibt Anrufzeilen zurück (Anrufer, Zeit, Dauer, Ergebnis, Tags, verknüpfter Kontakt, Anzahl der Transkript-Wendungen) plus totalCount.

Vollständige Details eines einzelnen Anrufs, alles außer dem Transkripttext und der Aufnahme.

ParameterTypBeschreibung
callIdstring reqNumerische Anruf-ID aus list_calls.

Gibt Zeitpunkt, Ergebnis, Anrufer- und Empfangsmitarbeiter-Nummern, die KI-geschriebene Zusammenfassung, erfasste Datenfelder, die vom Agenten verwendeten Fähigkeiten (mit dem Zeitpunkt, zu dem jede ausgelöst wurde), Tags, Kommentare Ihres Teams und die Anzahl der Transkript-Wendungen zurück.

Der Gesprächstext eines einzelnen Anrufs als geordnete Wendungen, jede mit einem [mm:ss]-Offset und ihrem Sprecher gestempelt.

ParameterTypBeschreibung
callIdstring reqNumerische Anruf-ID aus list_calls.
offset, limitnumber optPaginierung über Wendungen. limit ist 1–200, Standard 100. Ein typischer Anruf passt in eine Antwort; blättern Sie nur, wenn die Notiz sagt, dass weitere Wendungen übrig sind.

Sprecher sind Agent (der KI-Empfangsmitarbeiter), Anrufer (die Person, die gewählt hat) und Übergabeempfänger (ein Mensch, dem der Anruf übergeben wurde).

Gibt Wendungen (Offset, Sprecher, Text) plus totalCount zurück.

FAQ

Wie bringe ich Upfirst dazu, meine Anrufe zu beantworten?

Wir geben Ihnen eine Telefonnummer. Sie können diese Nummer weitergeben und Leute direkt anrufen lassen, aber die meisten Unternehmen leiten Anrufe von der Leitung, die sie bereits verwenden, dorthin weiter.

Sie wählen, wie viel weitergeleitet wird: jeden Anruf, nur die, die Sie verpassen, oder, je nach Telefon, Anbieter oder VoIP-System, nur während bestimmter Stunden. Die Schritte unterscheiden sich für jeden Anbieter, also sehen Sie Leiten Sie alle Ihre Anrufe an Upfirst weiter für Ihren.

Brauche ich einen API-Schlüssel?

Nein. Die Autorisierung ist eine standardmäßige OAuth-2.1-Anmeldung. Der erste Aufruf öffnet die Anmeldeseite von Upfirst, Sie genehmigen den Zugriff einmal, und es gibt nichts zu kopieren, einzufügen oder zu speichern.

Mit welchen KI-Assistenten kann ich das verwenden?

Jeder Client, der entfernte MCP-Server über HTTP unterstützt. Der Abschnitt Verbinden enthält Einrichtungen für Claude, ChatGPT, Claude Code, Cursor, VS Code und Codex. Für alles andere zeigen Sie auf https://mcp.upfirst.ai als streambaren HTTP-Server, und er übernimmt die Anmeldung beim ersten Aufruf.

Was kann mein Assistent erreichen?

Nur die Organisation, mit der Sie sich angemeldet haben. Jedes Tool ist auf diese Organisation beschränkt, und IDs von jeder anderen sind niemals zugänglich. Innerhalb dieser kann der Assistent Anrufe und Transkripte lesen und Empfangsmitarbeiter-Einstellungen, Fähigkeiten, Wissen und benutzerdefinierte Aktionen ändern und auswählen, auf welche Empfangsmitarbeiter jede angewendet wird. Behandeln Sie die Verbindung also so, wie Sie es tun würden, wenn Sie im Dashboard angemeldet wären.

Warum wird ein Anruf, den ich gerade angenommen habe, nicht angezeigt? Nur abgeschlossene Anrufe erscheinen, und ein Anruf wird kurz nach seinem Ende angezeigt. Laufende Anrufe sind erst verfügbar, wenn sie beendet werden. Wenn ein Anruf weiterhin fehlt, prüfen Sie, ob er archiviert wurde, da list_calls aktive Anrufe zurückgibt, es sei denn, Sie übergeben archived: true.

Was kann ich über MCP nicht tun?

Sprache, Zeitzone und Sprache; Planungsfähigkeiten; OAuth-Verbindungen für benutzerdefinierte Aktionen; Löschen einer Transferfähigkeit; und das Importieren von Wissen von einer Website werden alle im Upfirst-Dashboard verwaltet. Anrufaufzeichnungen sind über diese Verbindung ebenfalls nicht verfügbar. Die Tools geben dies an, wo es zutrifft.