Upfirst
offiziellUpfirst 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
- Öffnen Sie Anpassen und dann Connectors.
- Klicken Sie auf + und dann auf Benutzerdefinierten Connector hinzufügen.
- Nennen Sie ihn Upfirst und fügen Sie die URL unten als Remote-MCP-Server-URL ein.
- Lassen Sie die erweiterten Felder Client-ID und Client-Geheimnis leer.
- 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.
| Parameter | Typ | Beschreibung |
|---|---|---|
agentId | string erforderlich | Numerische 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.
| Parameter | Typ | Beschreibung |
|---|---|---|
agentId | string erforderlich | Zu aktualisierender Agent. |
greetingMessage | string optional | Eröffnungsnachricht. |
goodbyeMessage | string optional | Abschlussnachricht. |
voiceTone | enum optional | friendly · professional |
speechRate | number optional | 0.7 · 0.85 · 1 · 1.1 · 1.2 |
holdMusic | enum optional | ringTone · gentleGuitar · marimba · softKeys |
isSpamCallsBlocked | boolean optional | Vermutete Spam-Anrufe blockieren. |
isTollFreeCallsBlocked | boolean optional | Gebü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.
| Parameter | Typ | Beschreibung |
|---|---|---|
agentId | string erforderlich | Agent, 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.
| Parameter | Typ | Beschreibung |
|---|---|---|
agentId | string erforderlich | Agent, zu dem die Begrüßung gehört. |
text | string erforderlich | Die genauen zu sagenden Worte oder eine Anweisung, wie begrüßt werden soll. |
schedule | object erforderlich | Wann die Begrüßung verwendet wird, in der Zeitzone des Agenten. Siehe Begrüßungszeitpläne. |
isActive | boolean optional | Ob 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.
| Parameter | Typ | Beschreibung |
|---|---|---|
id | string erforderlich | Begrüßungs-ID, aus list_agent_greetings. |
text | string optional | Neuer Begrüßungstext. |
isActive | boolean optional | Ob die Begrüßung bei Anrufen verwendet wird. |
schedule | object optional | Neuer 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.
| Parameter | Typ | Beschreibung |
|---|---|---|
id | string erforderlich | Zu 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.
| Parameter | Typ | Beschreibung |
|---|---|---|
agentId | string erf. | Agent, dessen Fähigkeiten aufgelistet werden sollen. |
llmTool | enum opt. | Nur Fähigkeiten dieser Art: sendSms · sendScheduleSms · transferCall · scheduleSlot · customWebhook. |
includeInactive | boolean 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.
| Parameter | Typ | Beschreibung |
|---|---|---|
agentIds | string[] erf. | Agents, die die Fähigkeit erhalten, mindestens einer. IDs aus list_agents. |
autoLinkNewAgents | boolean opt. | Die Fähigkeit auch jedem später erstellten Agent geben. Wenn true, muss agentIds jeden aktuellen Agent auflisten. Standard false. |
llmTool | enum erf. | sendSms · sendScheduleSms |
name | string erf. | Kurzes Label, im Dashboard angezeigt. |
message | string erf. | Der SMS-Text, den der Agent sendet, bis zu 306 Zeichen. |
instruction | string erf. | Wann der Agent sie während eines Anrufs senden soll. |
isActive | boolean 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.
| Parameter | Typ | Beschreibung |
|---|---|---|
skillId | string erf. | Fähigkeits-ID aus list_agent_skills. |
llmTool | enum opt. | Zwischen sendSms und sendScheduleSms wechseln. |
name | string opt. | Neues Label. |
message | string opt. | Neuer SMS-Text, bis zu 306 Zeichen. |
instruction | string opt. | Neue Anleitung, wann gesendet werden soll. |
isActive | boolean opt. | Fähigkeit ein- oder ausschalten. |
agentIds | string[] opt. | Neue Gruppe von Agents, die die Fähigkeit erhalten. Zusammen mit autoLinkNewAgents senden oder beide weglassen, um die aktuellen Verknüpfungen zu behalten. |
autoLinkNewAgents | boolean 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.
| Parameter | Typ | Beschreibung |
|---|---|---|
skillId | string 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.
| Parameter | Typ | Beschreibung |
|---|---|---|
agentIds | string[] erf. | Agents, die die Fähigkeit erhalten, mindestens einer. IDs aus list_agents. |
autoLinkNewAgents | boolean opt. | Die Fähigkeit auch jedem später erstellten Agent geben. Wenn true, muss agentIds jeden aktuellen Agent auflisten. Standard false. |
name | string erf. | Kurzes Label, im Dashboard angezeigt. |
condition | string erf. | Wann weitergeleitet werden soll, in einfacher Sprache. |
preTransferMessage | string erf. | Was der Agent vor der Weiterleitung sagt. |
destinations | array erf. | Ein oder mehrere Ziele, in Reihenfolge versucht, jeweils { phoneNumber, label, phoneExtension }. phoneNumber ist erforderlich und muss E.164 sein (z. B. +12025550123). |
ringTimeoutSeconds | number opt. | Klingelzeit pro Ziel, 5–60. |
noAnswerAction | enum opt. | endCall · returnToAgent |
transferMethod | enum opt. | cold übergibt den Anrufer direkt · warm unterrichtet das Ziel zuerst. |
transferCallerId | enum opt. | Nummer, die das Ziel sieht: upfirstNumber · callerNumber. |
recordingMode | enum opt. | agentOnly stoppt die Aufzeichnung bei der Weiterleitung · fullCall zeichnet danach weiter auf. |
isActive | boolean opt. | Von Anfang an aktiv. Standard true. |
schedule | object 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.
| Parameter | Typ | Beschreibung |
|---|---|---|
skillId | string erf. | Fähigkeits-ID aus list_agent_skills. |
destinations | array opt. | Ersetzt die gesamte Liste. Senden Sie jede Nummer, die Sie behalten möchten. |
schedule | object opt. | Ersetzt die gespeicherten Stunden. null löscht den Zeitplan und macht die Fähigkeit rund um die Uhr verfügbar. |
| Andere Erstellungsfelder | opt. | name, condition, preTransferMessage, ringTimeoutSeconds, noAnswerAction, transferMethod, transferCallerId, recordingMode, isActive. Gleiche Werte wie beim Erstellen. |
agentIds | string[] opt. | Neue Gruppe von Agents, die die Fähigkeit erhalten. Zusammen mit autoLinkNewAgents senden oder beide weglassen, um die aktuellen Verknüpfungen zu behalten. |
autoLinkNewAgents | boolean 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.
| Parameter | Typ | Beschreibung |
|---|---|---|
agentId | string erf. | Agent, dessen Wissen gelesen werden soll. |
id | string opt. | Nur diesen einen Eintrag zurückgeben. |
offset | number opt. | Zu überspringende Einträge. Standard 0. |
limit | number 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.
| Parameter | Typ | Beschreibung |
|---|---|---|
agentIds | string[] erf. | Agents, die den Eintrag erhalten, mindestens einer. IDs aus list_agents. |
autoLinkNewAgents | boolean opt. | Den Eintrag auch jedem später erstellten Agent geben. Wenn true, muss agentIds jeden aktuellen Agent auflisten. Standard false. |
name | string erf. | Anzeigename des Eintrags. |
content | string erf. | Klartext, bis zu 250.000 Zeichen. |
isActive | boolean opt. | Von Anfang an aktiv. Standard true. |
schedule | object 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.
| Parameter | Typ | Beschreibung |
|---|---|---|
id | string erf. | Eintrags-ID aus get_agent_knowledge. |
name, isActive | opt. | Neuer Name / Aktiv-Flag. |
content | string opt. | Neuer Text, der den gespeicherten Inhalt vollständig ersetzt. Bis zu 250.000 Zeichen. |
schedule | object opt. | Neuer Zeitplan. null löscht ihn und macht den Eintrag immer verfügbar; weglassen, um den gespeicherten zu behalten. |
agentIds | string[] opt. | Neue Gruppe von Agents, die den Eintrag erhalten. Zusammen mit autoLinkNewAgents senden oder beide weglassen, um die aktuellen Verknüpfungen zu behalten. |
autoLinkNewAgents | boolean 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.
| Parameter | Typ | Beschreibung |
|---|---|---|
id | string 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.
| Parameter | Typ | Beschreibung |
|---|---|---|
agentId | string req | Agent, dessen Aktionen aufgelistet werden sollen. Jede mit diesem Agenten verknüpfte Aktion ist enthalten. |
id | string opt | Nur 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.
| Parameter | Typ | Beschreibung |
|---|---|---|
agentIds | string[] req | Agenten, die die Aktion erhalten, mindestens einer. IDs aus list_agents. |
autoLinkNewAgents | boolean opt | Geben Sie die Aktion auch jedem später erstellten Agenten. Wenn true, muss agentIds jeden aktuellen Agenten auflisten. Standard false. |
name | string req | Kurzes Label, das auf dem Dashboard angezeigt wird. |
description | string req | Was 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. |
timing | enum req | before · during · after |
httpMethod | enum req | GET · POST · PUT · PATCH · DELETE |
url | string req | Endpunkt, an den die Anfrage geht. Kann {{variable}}-Platzhalter enthalten. |
authType | enum req | none 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. |
fallbackMessage | string req | Was der Agent dem Anrufer sagt, wenn die Anfrage fehlschlägt oder ein Timeout auftritt. |
oauthConnectionId | string opt | Numerische 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. |
variables | array opt | Werte, 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 []. |
queryParams | array opt | Abfragezeichenfolgen-Parameter, jeweils { key, value }. Werte dürfen Platzhalter verwenden. Standard []. |
headers | array opt | Anforderungs-Header, jeweils { key, value }. Bearer-Authentifizierung trägt ihr Token in einem Authorization-Header hier. Senden Sie den [redacted]-Platzhalter niemals zurück. Standard []. |
allowedOutputFields | string[] opt | Felder der JSON-Antwort, die der Agent lesen darf. Leer lässt die Antwort unverändert durch. Standard []. |
bodyTemplate | string opt | Anforderungs-Body, der mit ersetzten Platzhaltern unverändert gesendet wird. Leer für keinen. |
sampleValues | object opt | Ein Wert pro Variablennamen, der verwendet wird, wenn die Aktion ausprobiert wird. |
timeoutSeconds | integer opt | 1–30. Standard 10. |
isActive | boolean opt | Von Anfang an aktiv. Standard true. |
condition | string oder null opt | Nur 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.
| Parameter | Typ | Beschreibung |
|---|---|---|
id | string req | Aktions-ID aus list_custom_actions. |
agentIds | string[] opt | Neuer Satz von Agenten, die die Aktion erhalten. Senden Sie ihn zusammen mit autoLinkNewAgents, oder lassen Sie beide weg, um die aktuellen Verknüpfungen beizubehalten. |
autoLinkNewAgents | boolean opt | Geben Sie die Aktion auch jedem später erstellten Agenten. Wenn true, muss agentIds jeden aktuellen Agenten auflisten. |
oauthConnectionId | string oder null opt | null löscht es. Senden Sie null im selben Aufruf, der die Aktion vom oauth_connection-Authentifizierungstyp wegbewegt. |
condition | string oder null opt | null löscht es. Senden Sie null im selben Aufruf, der die Aktion vom after-Zeitpunkt wegbewegt. |
variables, queryParams, headers, allowedOutputFields | array opt | Jedes 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 Erstellungsfelder | opt | name, 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.
| Parameter | Typ | Beschreibung |
|---|---|---|
id | string req | Zu 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).
| Parameter | Typ | Beschreibung |
|---|---|---|
statuses | enum[] opt | Nach Ergebnis filtern, jeder Anruf hat genau eines: test · blocked · spam · hungUp · completed. |
query | string opt | Freitextsuche über Anrufzusammenfassungen und Transkripte. |
tags | string[] opt | Anrufe abgleichen, die eines dieser Tags tragen (nach Name oder ID). |
startDate | date opt | Bloßes YYYY-MM-DD = Kalendertag in der Geschäftszeitzone oder eine vollständige ISO-Datumszeit. |
endDate | date opt | Wie oben; inklusive. |
archived | boolean opt | Archivierte Anrufe statt aktiver zurückgeben. Standard false. |
offset, limit | number opt | Paginierung. 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.
| Parameter | Typ | Beschreibung |
|---|---|---|
callId | string req | Numerische 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.
| Parameter | Typ | Beschreibung |
|---|---|---|
callId | string req | Numerische Anruf-ID aus list_calls. |
offset, limit | number opt | Paginierung ü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.