Upfirst

공식

Upfirst는 소규모 비즈니스를 위한 AI 전화 리셉셔니스트입니다. 통화 기록을 검토한 다음 AI 클라이언트에서 인사말, 지식 및 전환 규칙을 수정하세요.

Upfirst MCP(으)로 무엇을 할 수 있나요?

  • 리셉셔니스트 성과 감사 — 어시스턴트에게 지난주 통화를 검토하고 에이전트의 지식과 비교하여 격차를 식별하고 새로운 교육 항목을 제안하도록 요청하세요.

  • 설명을 통한 리셉셔니스트 구성 — 어시스턴트가 비즈니스 및 통화 처리에 대한 일반 언어 설명을 인사말, 지식, 전환 규칙 및 일정이 포함된 완전한 설정으로 전환하도록 하세요.

  • 성과가 낮은 통화 수정 — 특정 통화 기록을 어시스턴트에게 지정하고 원하는 결과를 설명하세요. 그러면 향후 통화를 개선하기 위한 정확한 지식 편집을 제안할 것입니다.

  • 에이전트 설정 관리 — 어시스턴트에게 리셉셔니스트의 인사말, 작별 메시지, 음성 톤, 말하기 속도 또는 통화 차단 기본 설정을 읽거나 업데이트하도록 지시하세요.

  • 교육 콘텐츠 생성 및 편집 — 어시스턴트에게 하나 이상의 에이전트와 연결된 지식 항목을 추가, 업데이트 또는 삭제하도록 요청하세요. 특정 영업 시간에 대한 일정 항목도 포함됩니다.

  • 통화 전환 규칙 설정 — 어시스턴트에게 조건, 전환 전 메시지, 대상 번호 및 주간 일정이 포함된 전환 기술을 구성하도록 지시하세요.

문서

연결

설치할 것은 없습니다. 클라이언트를 https://mcp.upfirst.ai에 연결하면 처음 연결 시 Upfirst에 로그인하는 과정을 안내합니다. 인증은 표준 OAuth 2.1 로그인이므로 복사하거나 저장할 API 키가 없습니다.

서버는 스트리밍 HTTP로 실행되며 어시스턴트에게 계정을 읽고 변경할 수 있는 25개의 도구를 제공합니다. 아래에서 클라이언트를 선택하세요.

Upfirst는 Claude의 커넥터 디렉터리에 있습니다. claude.ai/directory/upfirst를 열고 Upfirst를 추가한 다음 Upfirst에 로그인하고 액세스를 승인하세요. Claude 데스크톱 앱과 claude.ai에서 작동합니다.

대신 사용자 지정 커넥터로 추가하기

  1. 사용자 지정을 연 다음 커넥터를 엽니다.
  2. **+**를 클릭한 다음 사용자 지정 커넥터 추가를 클릭합니다.
  3. 이름을 Upfirst로 지정하고 아래 URL을 원격 MCP 서버 URL로 붙여넣습니다.
  4. 고급 클라이언트 ID 및 클라이언트 시크릿 필드는 비워 둡니다.
  5. 추가를 클릭한 다음 연결을 클릭하고 Upfirst에 로그인한 후 액세스를 승인합니다.
https://mcp.upfirst.ai

Team 및 Enterprise 요금제에서는 소유자가 조직 설정에서 커넥터를 한 번 추가하면 다른 모든 사용자는 연결을 클릭하기만 하면 됩니다.

어떤 방식으로 연결하든 첫 번째 호출에서 Upfirst의 로그인 페이지가 열립니다. 액세스를 한 번 승인하면 연결은 이후 조직에 바인딩된 상태로 유지됩니다.

규칙

모든 도구에 적용되는 몇 가지 규칙이 있습니다. 각 도구에는 데이터에 대해 수행하는 작업을 나타내는 태그가 있습니다:

  • 읽기 데이터를 가져옵니다. 아무것도 변경하지 않습니다.
  • 쓰기 레코드를 생성하거나 업데이트합니다.
  • 삭제 레코드를 영구적으로 제거합니다. 실행 취소는 없습니다.

ID는 목록 도구에서 가져옵니다

에이전트 ID는 list_agents, 스킬 ID는 list_agent_skills, 지식 ID는 get_agent_knowledge, 인사말 ID는 list_agent_greetings, 사용자 지정 작업 ID는 list_custom_actions, 통화 ID는 list_calls에서 가져옵니다. ID는 숫자 문자열입니다. 스킬 도구는 ID를 skillId으로 사용하고, 지식, 인사말, 사용자 지정 작업 도구는 id으로 사용합니다. 업데이트 및 삭제 도구에는 해당 ID만 필요합니다. agentId는 사용하지 않습니다.

레코드는 에이전트에 연결됩니다

모든 스킬, 지식 항목 및 사용자 지정 작업은 하나 이상의 에이전트에 연결됩니다. 생성 도구는 agentIds을 사용하며, 여기에는 최소 하나의 에이전트 ID가 포함된 목록이 필요합니다. autoLinkNewAgents를 true로 설정하면 나중에 만드는 모든 에이전트에도 레코드가 제공됩니다. 이 경우 agentIds에는 현재 모든 에이전트가 나열되어야 합니다. 업데이트 도구는 agentIds과 autoLinkNewAgents을 모두 보낼 때만 링크를 변경합니다. 링크를 유지하려면 둘 다 생략하세요. 레코드를 편집하거나 삭제하면 연결된 모든 에이전트에 대해 변경됩니다.

페이지 매김

get_agent_knowledge, list_calls, get_call_transcript은 offset와 limit을 사용하고 totalCount를 반환하므로 페이지는 항상 동일한 필터링된 집합에서 가져옵니다. 다른 목록 도구는 모든 것을 하나의 응답으로 반환합니다.

시간대

날짜만 있는 값(YYYY-MM-DD)은 비즈니스의 시간대로 읽습니다. 주간 일정은 각 에이전트의 자체 시간대로 읽히므로 두 시간대의 에이전트에 연결된 항목은 각각 현지 시간을 따릅니다. 정확한 시점이 필요하면 전체 ISO 8601 날짜/시간을 전달하세요.

삭제는 영구적입니다

이 연결을 통한 복원은 없습니다. 삭제된 스킬, 지식 항목 또는 사용자 지정 작업은 연결된 모든 에이전트에서 사라지며 해당 에이전트는 몇 분 내에 사용을 중지합니다.

일부 설정은 대시보드 전용입니다

음성, 시간대, 언어, 스킬 예약, 사용자 지정 작업이 인증하는 OAuth 연결, 전송 스킬 삭제, 웹사이트 지식 가져오기는 MCP가 아닌 Upfirst 대시보드에서 관리합니다. 도구는 해당되는 경우 이를 명시합니다.

예시 프롬프트

Upfirst MCP 서버는 호환되는 모든 AI 클라이언트에서 작동합니다. 시작하려면 다음 프롬프트 중 하나를 클라이언트에 복사하여 비즈니스에 맞게 조정하세요.

리셉셔니스트의 지식 격차 찾기

사용 사례

이 워크플로를 사용하여 지난 주 통화를 검토하고 리셉셔니스트의 지식이 부족했던 부분을 찾아 훈련에 추가할 내용을 파악하세요.

예시 프롬프트

당신은 Upfirst 리셉셔니스트의 지식 격차를 찾는 데 도움을 주고 있습니다.

지난 7일간의 통화를 검토한 다음 리셉셔니스트의 현재 지식을 읽으세요. 발신자가 잘 대답하지 못한 질문, 누락된 정보, 두 번 이상 나온 동일한 주제를 찾아보세요.

각 격차에 대해 이를 보여주는 통화를 지적하고, 리셉셔니스트가 대답해야 하는 방식으로 작성된, 격차를 채울 구체적인 지식 항목을 제안하세요. 관련 격차를 함께 묶고 발생 빈도에 따라 순위를 매기세요.

아무것도 변경하지 마세요. 검토를 위해 격차와 제안된 항목을 제시하세요.

리셉셔니스트: [Name, or leave blank for all]

설명에서 리셉셔니스트 설정하기

사용 사례

이 워크플로를 사용하여 리셉셔니스트가 통화를 처리하는 방식을 설명하고 어시스턴트가 인사말, 지식, 전송 규칙, 일정 및 문자 스킬을 포함한 설정을 구축하도록 하세요.

예시 프롬프트

당신은 일반적인 설명에서 Upfirst AI 리셉셔니스트를 구성하는 데 도움을 주고 있습니다.

설명을 완전한 설정으로 변환하세요: 인사말과 작별 인사, 일반적인 질문에 답하는 데 필요한 지식, 사람에게 연결해야 하는 통화에 대한 전송 규칙, 특정 시간에만 적용되는 정보 또는 전송에 대한 일정, 설명에 필요한 문자 스킬.

설명에서 불분명한 중요한 사항(예: 영업 시간, 통화가 연결되어야 하는 사람, 일반적인 요청 처리 방법)은 추측하지 말고 질문하세요.

무언가를 만들기 전에 전체 제안 설정을 검토용으로 표시한 다음 승인되면 적용하세요.

리셉셔니스트가 통화를 처리하는 방법: [Describe your business, your hours, what callers usually need, and who calls should reach]

잘못된 통화 수정하기

사용 사례

이 워크플로를 사용하여 원하는 대로 진행되지 않은 통화를 지적하고, 원하는 결과를 말하고, 어시스턴트가 리셉셔니스트의 지식을 조정하여 유사한 통화가 더 잘 진행되도록 하세요.

예시 프롬프트

당신은 잘못된 통화를 기반으로 Upfirst 리셉셔니스트를 개선하는 데 도움을 주고 있습니다.

내가 지적한 통화와 대화 내용을 읽고, 리셉셔니스트가 한 일과 내가 원했던 일을 비교하세요. 지식이 누락되었는지, 불분명했는지, 다른 항목과 모순되었는지 등 결과로 이어진 원인을 파악하세요.

다음에 이런 통화가 더 잘 진행되도록 할 구체적인 변경 사항을 추가하거나 편집할 정확한 지식으로 작성하고 각각이 왜 도움이 되는지 설명하세요.

적용 전에 변경 사항을 검토용으로 표시한 다음 승인된 편집을 수행하세요.

통화: [ID or a short description of the call]
대신 원했던 결과: [Describe the outcome you were hoping for]

01

계정 및 에이전트

상황을 파악한 다음 개별 AI 리셉셔니스트를 읽거나 업데이트하세요.

여기서 시작하세요. 전체 계정의 간결한 스냅샷: 비즈니스 이름, 각 리셉셔니스트의 시간대, 인사말, 전화번호, 스킬 및 지식, 지난 30일 동안 처리된 통화 수.

매개변수 없음.

반환 비즈니스 이름 · 에이전트(id, 이름, 시간대, 인사말, 전화번호, 스킬 및 지식 이름) · 지난 30일 동안의 통화 수(정산된 통화만 해당, 테스트 및 보관된 통화는 제외).

조직의 AI 에이전트를 나열합니다. 아래 에이전트 범위 도구와 함께 반환된 ID를 사용하세요.

매개변수 없음.

반환 각각 id와 이름이 있는 에이전트.

한 에이전트의 전체 대화 설정과 연결된 전화번호를 읽습니다.

매개변수유형설명
agentId문자열 필수list_agents의 숫자 에이전트 ID.

반환 인사말 및 작별 메시지, 음성 톤, 말하기 속도, 대기 음악, 시간대, 스팸 및 수신자 부담 차단, 연결된 전화번호.

에이전트의 대화 설정을 변경합니다. 부분 업데이트: 변경되는 항목만 보내세요. 설정 가능한 필드가 하나 이상 필요합니다.

매개변수유형설명
agentId문자열 필수업데이트할 에이전트.
greetingMessage문자열 선택시작 메시지.
goodbyeMessage문자열 선택종료 메시지.
voiceTone열거형 선택friendly · professional
speechRate숫자 선택0.7 · 0.85 · 1 · 1.1 · 1.2
holdMusic열거형 선택ringTone · gentleGuitar · marimba · softKeys
isSpamCallsBlocked부울 선택의심스러운 스팸 통화 차단.
isTollFreeCallsBlocked부울 선택수신자 부담 통화 차단.

음성, 시간대 및 언어는 대시보드에서 관리되며 여기서 변경할 수 없습니다. 두 차단 플래그는 조직 전체에 적용됩니다. 하나를 설정하면 대시보드와 마찬가지로 모든 활성 에이전트에 대해 변경됩니다. greetingMessage은 기본 인사말입니다. 특정 시간 또는 날짜에 대한 인사말은 예약 인사말 아래에 자체 도구가 있습니다.

반환 get_agent_by_id와 동일한 형태의 업데이트된 에이전트.

02

예약 인사말

예약 인사말은 영업 시간 외 또는 공휴일 인사말과 같이 일정에 포함된 통화에서 리셉셔니스트가 먼저 말하는 내용입니다. 각 인사말은 단일 에이전트에 속합니다. 통화 시간과 일치하는 예약 인사말이 없으면 에이전트는 get_agent_by_id으로 읽고 update_agent로 변경하는 기본 인사말을 사용합니다.

에이전트의 예약 인사말을 비활성 인사말을 포함하여 나열합니다. 인사말을 변경하기 전에 이 목록을 읽어 보이지 않는 항목이 덮어써지지 않도록 하세요.

매개변수유형설명
agentId문자열 필수인사말을 나열할 에이전트.

반환 각 인사말의 id, text, 활성 플래그, kind 및 schedule. kind는 읽기 전용입니다. text은 인사말이 작성된 대로 말해짐을 의미하고, instruction은 에이전트가 이를 기반으로 인사말을 구성함을 의미하며, unknown는 아직 분류되지 않았음을 의미합니다.

에이전트에 예약 인사말을 추가합니다. 전체 요청이 유효한 경우에만 인사말이 저장됩니다.

매개변수유형설명
agentId문자열 필수인사말이 속한 에이전트.
text문자열 필수말할 정확한 문구 또는 인사 방법에 대한 지침.
schedule객체 필수에이전트 시간대에서 인사말이 사용되는 시기. 인사말 일정 참조.
isActive부울 선택인사말이 통화 시작 시 사용되는지 여부. 기본값은 true.

일정은 같은 에이전트의 다른 활성 인사말과 겹치지 않아야 합니다. 주간 시간과 날짜는 별도로 확인됩니다. kind은 시스템에 의해 설정됩니다. 쓰기 직후 unknown를 읽고 몇 초 내에 분류됩니다.

반환 새 인사말의 id와 해당 필드.

예약 인사말의 텍스트, 활성 플래그 또는 일정을 변경합니다. 부분 업데이트: 변경되는 항목만 보내세요. 필드가 하나 이상 필요합니다.

매개변수유형설명
id문자열 필수list_agent_greetings의 인사말 id.
text문자열 선택새 인사말 텍스트.
isActive부울 선택인사말이 통화에 사용되는지 여부.
schedule객체 선택새 일정. 인사말 일정 참조.

새 일정은 저장된 일정을 완전히 대체하므로 먼저 인사말을 읽고 원하는 전체 일정을 다시 보내세요. 생성 시와 동일한 겹침 규칙이 적용됩니다. 텍스트 변경은 다시 분류될 때까지 kind를 unknown으로 재설정합니다.

반환 업데이트가 기록한 필드.

예약 인사말을 영구적으로 삭제합니다.

매개변수유형설명
id문자열 필수삭제할 인사말 id.

삭제된 인사말을 복원할 방법은 없습니다. 해당 시간대의 통화는 다른 일치하는 인사말을 사용하거나, 일치하는 것이 없으면 에이전트의 기본 인사말을 사용합니다. 인사말의 일정에는 days에 주간 시간이 있고 dates에 선택적 특정 날짜가 있으며, 모두 에이전트의 시간대를 기준으로 합니다. days은 Schedules와 동일한 형태를 사용합니다: 각각 enabled과 workingPeriods가 있는 7일 전체입니다. dates의 각 항목에는 YYYY-MM-DD로 표시된 date와 periods에 최소 하나의 시간 범위가 있습니다. 날짜 항목은 해당 날짜의 주간 시간보다 우선하며, 이를 통해 휴일 인사말을 설정할 수 있습니다.

{
  "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

스킬

스킬은 리셉셔니스트가 통화 중에 수행할 수 있는 작업입니다: 발신자에게 문자 보내기, 일정 링크 문자 보내기, 통화 전환, 약속 예약, 또는 외부 API 호출. 각 종류마다 고유한 도구가 있으므로 전달하는 필드는 항상 해당 종류가 사용하는 필드입니다. 일정 스킬은 여기서 읽기 전용이며 대시보드에서 관리됩니다. 웹훅 스킬의 설정은 연결된 사용자 지정 작업에 있으며, 아래의 Custom actions 도구로 읽고 편집합니다.

에이전트에 구성된 스킬을 나열하며, 기본적으로 비활성 스킬도 포함합니다.

매개변수유형설명
agentIdstring 필수스킬을 나열할 에이전트.
llmToolenum 선택이 종류의 스킬만: sendSms · sendScheduleSms · transferCall · scheduleSlot · customWebhook.
includeInactiveboolean 선택꺼진 스킬 포함. 기본값 true.

스킬 반환: id, 이름, 슬러그, 종류, 활성 플래그, 저장된 구성, 선택적 주간 일정. customWebhook 행은 빈 구성과 연결된 작업의 URL, HTTP 메서드 및 타이밍이 있는 웹훅 블록을 가집니다; 전체 구성은 list_custom_actions로 읽습니다.

일정은 전화 통화에서 전환 스킬에만 적용됩니다. 다른 종류는 일정을 저장하지만 무시합니다.

문자 스킬 추가: 리셉셔니스트가 통화 중에 발신자에게 보낼 수 있는 SMS. sendSms은 메시지를 작성된 대로 문자로 보냅니다. sendScheduleSms은 조직의 일정 링크와 함께 문자로 보냅니다.

매개변수유형설명
agentIdsstring[] 필수스킬을 받을 에이전트, 최소 하나. list_agents의 ID.
autoLinkNewAgentsboolean 선택이후 생성되는 모든 에이전트에게도 스킬 부여. true일 때, agentIds는 모든 현재 에이전트를 나열해야 합니다. 기본값 false.
llmToolenum 필수sendSms · sendScheduleSms
namestring 필수대시보드에 표시되는 짧은 레이블.
messagestring 필수에이전트가 보내는 SMS 텍스트, 최대 306자.
instructionstring 필수에이전트가 통화 중에 보내야 하는 시점.
isActiveboolean 선택처음부터 켜짐. 기본값 true.

메시지는 홍보성 또는 제한된 문구를 거부하는 콘텐츠 필터를 통과합니다.

새 스킬의 id와 보낸 필드(llmTool, name, message, instruction, isActive)를 반환합니다. 저장된 스킬은 list_agent_skills로 읽습니다.

문자 스킬 변경. 부분 업데이트: 보낸 필드만 변경됩니다. 설정 가능한 필드를 하나 이상 보내거나 새 에이전트 세트를 보냅니다.

매개변수유형설명
skillIdstring 필수list_agent_skills의 스킬 ID.
llmToolenum 선택sendSms와 sendScheduleSms 사이 전환.
namestring 선택새 레이블.
messagestring 선택새 SMS 텍스트, 최대 306자.
instructionstring 선택보내는 시점에 대한 새 지침.
isActiveboolean 선택스킬 켜기 또는 끄기.
agentIdsstring[] 선택스킬을 받을 새 에이전트 세트. autoLinkNewAgents과 함께 보내거나, 둘 다 생략하여 현재 연결을 유지합니다.
autoLinkNewAgentsboolean 선택이후 생성되는 모든 에이전트에게도 스킬 부여. true일 때, agentIds는 모든 현재 에이전트를 나열해야 합니다.

업데이트가 기록한 필드를 반환합니다.

연결된 모든 에이전트에서 문자 스킬을 영구적으로 삭제합니다. 해당 에이전트는 더 이상 그 메시지를 보내지 않습니다.

매개변수유형설명
skillIdstring 필수삭제할 스킬 ID.

삭제된 스킬을 복원할 방법은 없습니다. 다시 얻으려면 처음부터 다시 만들어야 합니다.

{ id, note }을 반환하며, note은 삭제를 평이한 언어로 확인합니다.

전환 스킬 추가: 실시간 통화를 사람에게 넘기는 규칙. condition은 에이전트에게 전환 시점을 알려주고, preTransferMessage는 먼저 발신자에게 말하는 내용이며, destinations은 순서대로 거는 번호입니다.

매개변수유형설명
agentIdsstring[] 필수스킬을 받을 에이전트, 최소 하나. list_agents의 ID.
autoLinkNewAgentsboolean 선택이후 생성되는 모든 에이전트에게도 스킬 부여. true일 때, agentIds는 모든 현재 에이전트를 나열해야 합니다. 기본값 false.
namestring 필수대시보드에 표시되는 짧은 레이블.
conditionstring 필수전환 시점, 평이한 언어로.
preTransferMessagestring 필수전환 전에 에이전트가 말하는 내용.
destinations배열 필수순서대로 시도되는 하나 이상의 대상, 각각 { phoneNumber, label, phoneExtension }. phoneNumber는 필수이며 E.164 형식이어야 합니다 (예: +12025550123).
ringTimeoutSecondsnumber 선택대상별 벨소리 시간, 5–60.
noAnswerActionenum 선택endCall · returnToAgent
transferMethodenum 선택cold는 발신자를 직접 연결 · warm은 먼저 대상에게 브리핑.
transferCallerIdenum 선택대상이 보는 번호: upfirstNumber · callerNumber.
recordingModeenum 선택agentOnly는 전환 시 녹음 중지 · fullCall은 전환 후에도 녹음 유지.
isActiveboolean 선택처음부터 켜짐. 기본값 true.
scheduleobject 선택스킬이 제공되는 주간 시간, 에이전트의 시간대 기준. 항상 가능하려면 생략. Schedules 참조.

모든 대상은 연결된 에이전트의 Upfirst 번호 중 하나와 같은 국가에 있어야 합니다. 생략하면 스킬은 통화 시 대시보드 기본값을 사용합니다: 30초 벨소리, 응답 없음 시 통화 종료, 콜드 전환, 발신자 ID로 Upfirst 번호, 전환 시 녹음 중지.

새 스킬의 id와 보낸 필드를 반환합니다. 저장된 스킬은 list_agent_skills로 읽습니다.

전환 스킬 변경. 부분 업데이트: 보낸 필드만 변경됩니다. 설정 가능한 필드를 하나 이상 보내거나 새 에이전트 세트를 보냅니다.

매개변수유형설명
skillIdstring 필수list_agent_skills의 스킬 ID.
destinations배열 선택전체 목록을 대체합니다. 유지하려는 모든 번호를 보냅니다.
scheduleobject 선택저장된 시간을 대체합니다. null은 일정을 지워 스킬을 24시간 사용 가능하게 합니다.
기타 생성 필드선택name, condition, preTransferMessage, ringTimeoutSeconds, noAnswerAction, transferMethod, transferCallerId, recordingMode, isActive. 생성과 동일한 값.
agentIdsstring[] 선택스킬을 받을 새 에이전트 세트. autoLinkNewAgents과 함께 보내거나, 둘 다 생략하여 현재 연결을 유지합니다.
autoLinkNewAgentsboolean 선택이후 생성되는 모든 에이전트에게도 스킬 부여. true일 때, agentIds는 모든 현재 에이전트를 나열해야 합니다.

모든 대상은 연결된 에이전트의 Upfirst 번호 중 하나와 같은 국가에 있어야 합니다.

스킬의 종류는 생성 시 고정됩니다. 일정 또는 웹훅 스킬의 ID를 전달하면 찾을 수 없음으로 읽힙니다.

업데이트가 기록한 필드를 반환합니다.

이에 대한 도구는 없습니다. 전환 스킬은 Upfirst 대시보드에서 삭제됩니다. MCP를 통해 대신 끌 수 있습니다: isActive: false을 update_transfer_call_skill로 설정하면 에이전트가 전환을 제공하지 않지만 스킬은 구성된 상태로 유지됩니다.

04

지식

리셉셔니스트의 지식은 발신자에게 답변하는 내용입니다. Upfirst 대시보드에서 이러한 항목은 Training 아래에 있습니다. 각 항목은 작성한 텍스트 또는 웹사이트에서 가져온 콘텐츠입니다. 항목은 여러 에이전트에 연결될 수 있으며, 편집하거나 삭제하면 연결된 모든 에이전트가 답변하는 내용이 변경됩니다. 쓰기는 몇 분 내에 리셉셔니스트를 자동으로 재훈련합니다.

에이전트의 지식 기반을 읽습니다. 모든 항목은 전체 콘텐츠와 함께 완전히 반환되며, 미리보기가 아닙니다.

매개변수유형설명
agentIdstring 필수지식을 읽을 에이전트.
idstring 선택이 항목 하나만 반환.
offsetnumber 선택건너뛸 항목 수. 기본값 0.
limitnumber 선택최대 항목 수, 1–100. 기본값 25.

항목 반환: id, 이름, 유형(텍스트/웹사이트), 활성 플래그, 전체 콘텐츠, 소스 URL, 주간 일정, 그리고 totalCount.

하나 이상의 리셉셔니스트 훈련에 텍스트 항목을 추가합니다. 새 항목은 각 연결된 에이전트 목록의 맨 위로 이동합니다.

매개변수유형설명
agentIdsstring[] 필수항목을 받을 에이전트, 최소 하나. list_agents의 ID.
autoLinkNewAgentsboolean 선택이후 생성되는 모든 에이전트에게도 항목 부여. true일 때, agentIds는 모든 현재 에이전트를 나열해야 합니다. 기본값 false.
namestring 필수항목의 표시 이름.
contentstring 필수일반 텍스트, 최대 250,000자.
isActiveboolean 선택처음부터 활성. 기본값 true.
scheduleobject 선택항목을 영업 시간으로 제한. 항상 활성하려면 생략. Schedules 참조.

새 항목의 id, name, isActive, schedule (항상 활성일 때 null), 그리고 문자 수의 contentLength을 반환합니다. 전체 항목은 get_agent_knowledge로 읽습니다.

항목의 이름, 활성 플래그, 콘텐츠, 일정 또는 표시할 에이전트를 변경합니다. 부분 업데이트: 설정 가능한 필드를 하나 이상 보내거나 새 에이전트 세트를 보냅니다.

매개변수유형설명
idstring 필수get_agent_knowledge의 항목 ID.
name, isActive선택새 이름 / 활성 플래그.
contentstring 선택새 텍스트, 저장된 콘텐츠를 완전히 대체. 최대 250,000자.
scheduleobject 선택새 일정. null는 일정을 지워 항목을 항상 사용 가능하게 함; 생략하면 저장된 일정 유지.
agentIdsstring[] 선택항목을 받을 새 에이전트 세트. autoLinkNewAgents과 함께 보내거나, 둘 다 생략하여 현재 연결을 유지합니다.
autoLinkNewAgentsboolean 선택이후 생성되는 모든 에이전트에게도 항목 부여. true일 때, agentIds는 모든 현재 에이전트를 나열해야 합니다.

콘텐츠는 대체되며, 추가되지 않습니다. 먼저 get_agent_knowledge로 항목을 읽고 유지하려는 내용을 포함한 전체 텍스트를 다시 보냅니다. 편집은 항목에 연결된 모든 에이전트가 말하는 내용을 변경합니다.

업데이트가 기록한 필드를 반환합니다. 새 콘텐츠는 전체 텍스트가 아닌 contentLength로 반환됩니다.

지식 항목을 영구적으로 삭제합니다.

매개변수유형설명
idstring 필수삭제할 항목 ID.

삭제된 항목을 복원할 방법은 없습니다. 삭제하면 연결된 모든 에이전트에서 제거됩니다.

{ id, note }을 반환하며, note은 삭제를 평이한 언어로 확인합니다. 일정은 지식 항목(또는 전달 스킬)을 업무 시간으로 제한하며, 에이전트의 업무 시간대를 기준으로 적용됩니다. 요일별 객체 형태입니다. 전송하는 모든 일정에는 7일 전체가 포함되어야 하며, 항목이 적용되지 않는 날은 빈 enabled: false와 함께 workingPeriods로 표시합니다. 시간은 에이전트 시간대 기준 24시간제 HH:MM로 표기합니다.

예약된 항목은 해당 시간 창 동안에만 리셉셔니스트의 지식에 포함됩니다. 창 밖에서는 항목이 존재하지 않는 것과 같으므로, 리셉셔니스트는 잘못된 시간에 그 항목을 바탕으로 응답하지 않습니다.

따라서 일정은 시간별 사실을 처리하는 신뢰할 수 있는 방법입니다. 영업 및 휴무 시간을 확실하게 처리하려면, 영업 시간으로 제한된 "현재 영업 중입니다"라는 항목 하나와 휴무 시간으로 제한된 "현재 영업하지 않습니다"라는 항목 하나를 추가하세요. 한 번에 하나만 활성화되므로 리셉셔니스트가 혼동할 수 없습니다.

{
  "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

사용자 지정 작업

사용자 지정 작업은 리셉셔니스트가 외부 HTTP API에 수행하는 호출입니다. timing가 실행 시점을 결정합니다: before는 대화 전에 실행되며 시스템 변수만 사용할 수 있습니다; during는 통화 중 에이전트에게 제안되며, 에이전트는 설명을 보고 호출 여부를 결정합니다; after는 통화가 종료된 후 실행되며, 매번 또는 일반 언어 조건이 충족될 때 실행됩니다.

변수는 {{name}}로 url, 쿼리 매개변수, 헤더 및 본문에 보간됩니다. 작업은 하나 이상의 에이전트에 연결되며, 편집하거나 삭제하면 연결된 모든 에이전트의 동작이 변경됩니다. list_agent_skills에서 customWebhook 스킬은 사용자 지정 작업의 에이전트 측 보기입니다. 작업이 인증에 사용할 수 있는 OAuth 연결은 Upfirst 대시보드에서 설정됩니다.

에이전트가 사용할 수 있는 모든 사용자 지정 작업과 전체 구성입니다. 작업을 다시 작성하기 전에 이 내용을 읽어 숨겨진 항목이 덮어써지지 않도록 하세요.

매개변수유형설명
agentId문자열 필수작업을 나열할 에이전트. 이 에이전트에 연결된 모든 작업이 포함됩니다.
id문자열 선택이 작업 하나만 반환합니다.

customActions를 반환하며, 각각 id, agentIds(작업이 연결된 모든 에이전트), autoLinkNewAgents, 이름, 설명, 타이밍, HTTP 메서드, url, 인증 유형 및 OAuth 연결 ID, 대체 메시지, 시간 제한, 활성 플래그, 변수, 쿼리 매개변수, 헤더, 허용된 출력 필드, 샘플 값, 본문 템플릿 및 후속 타이밍 조건을 포함합니다.

자격 증명처럼 보이는 이름(token, key, secret, authorization)의 헤더는 [redacted]로 반환되며 실제 값은 절대 읽히지 않습니다. 삭제된 작업은 생략됩니다.

사용자 지정 작업을 추가하고 하나 이상의 에이전트에 연결합니다.

매개변수유형설명
agentIds문자열[] 필수작업을 받을 에이전트, 최소 하나 이상. list_agents의 ID.
autoLinkNewAgents부울 선택나중에 생성된 모든 에이전트에게도 작업을 부여합니다. true인 경우 agentIds는 모든 현재 에이전트를 나열해야 합니다. 기본값 false.
name문자열 필수대시보드에 표시되는 짧은 레이블.
description문자열 필수작업이 수행하는 작업을 일반 언어로 설명. before 및 during 타이밍은 이 텍스트를 에이전트 앞에 제시하며, 에이전트는 이 텍스트를 보고 API 호출 여부를 결정합니다. after 타이밍은 이를 무시합니다.
timing열거형 필수before · during · after
httpMethod열거형 필수GET · POST · PUT · PATCH · DELETE
url문자열 필수요청이 전송되는 엔드포인트. {{variable}} 자리 표시자를 포함할 수 있습니다.
authType열거형 필수none는 요청을 인증 없이 전송합니다 · bearer는 headers에 Authorization 헤더가 필요합니다 · customHeaders는 제공한 헤더를 통해 인증합니다 · oauth_connection는 연결에서 토큰을 확인하며 oauthConnectionId가 필요합니다.
fallbackMessage문자열 필수요청이 실패하거나 시간 초과될 때 에이전트가 발신자에게 알리는 내용.
oauthConnectionId문자열 선택연결된 OAuth 연결의 숫자 ID. oauth_connection에 필요하며 다른 모든 인증 유형에서는 거부됩니다. 이미 사용 중인 작업의 list_custom_actions에서 가져옵니다.
variables배열 선택요청에 보간되는 값, 각각 { name, description, exampleValue, isSystem, required }. name 및 description는 필수이며 이름은 고유해야 합니다. 시스템 변수는 Upfirst가 통화 자체에서 채우고, 사용자 지정 변수는 발신자로부터 수집됩니다. before-타이밍 작업은 시스템 변수만 사용할 수 있습니다. 기본값 [].
queryParams배열 선택쿼리 문자열 매개변수, 각각 { key, value }. 값은 자리 표시자를 사용할 수 있습니다. 기본값 [].
headers배열 선택요청 헤더, 각각 { key, value }. Bearer 인증은 여기 Authorization 헤더에 토큰을 전달합니다. [redacted] 자리 표시자를 다시 보내지 마세요. 기본값 [].
allowedOutputFields문자열[] 선택에이전트가 읽을 수 있는 JSON 응답의 필드. 비어 있으면 응답을 그대로 전달합니다. 기본값 [].
bodyTemplate문자열 선택자리 표시자가 대체된 상태로 그대로 전송되는 요청 본문. 없으면 비어 있음.
sampleValues객체 선택작업을 시험할 때 사용되는 변수 이름별 값.
timeoutSeconds정수 선택1–30. 기본값 10.
isActive부울 선택처음부터 활성화. 기본값 true.
condition문자열 또는 null 선택after 타이밍 전용. 완료된 통화에 대해 확인되는 일반 언어 규칙; null는 모든 통화 후에 실행됩니다. before 및 during에서는 생략하세요.

생성된 작업을 새 ID와 함께 반환합니다.

사용자 지정 작업을 변경합니다. 부분 업데이트: 보낸 필드만 변경됩니다. 설정 가능한 필드를 하나 이상 보내거나 새 에이전트 집합을 보내세요. 목록은 병합되지 않고 전체가 교체되므로 먼저 list_custom_actions로 작업을 읽으세요.

매개변수유형설명
id문자열 필수list_custom_actions의 작업 ID.
agentIds문자열[] 선택작업을 받을 새 에이전트 집합. autoLinkNewAgents와 함께 보내거나, 현재 연결을 유지하려면 둘 다 생략하세요.
autoLinkNewAgents부울 선택나중에 생성된 모든 에이전트에게도 작업을 부여합니다. true인 경우 agentIds는 모든 현재 에이전트를 나열해야 합니다.
oauthConnectionId문자열 또는 null 선택null는 이를 지웁니다. 작업을 oauth_connection 인증 유형에서 이동하는 동일한 호출에서 null를 보내세요.
condition문자열 또는 null 선택null는 이를 지웁니다. 작업을 after 타이밍에서 이동하는 동일한 호출에서 null를 보내세요.
variables, queryParams, headers, allowedOutputFields배열 선택각각 전체 목록을 교체합니다. 유지하려는 모든 항목을 보내세요. [redacted] 자리 표시자를 포함하는 헤더는 거부됩니다. 실제 값을 보내거나 해당 헤더를 생략하세요.
기타 생성 필드선택name, description, timing, httpMethod, url, authType, bodyTemplate, sampleValues, fallbackMessage, timeoutSeconds, isActive. 생성과 동일한 값.

여러 에이전트에 연결된 작업은 모든 에이전트에 대해 편집됩니다.

업데이트가 기록한 필드를 반환합니다.

사용자 지정 작업을 영구적으로 삭제합니다. 연결된 모든 에이전트는 해당 API 호출을 중단합니다.

매개변수유형설명
id문자열 필수삭제할 작업 ID.

삭제된 작업을 복원할 방법은 없습니다. 다시 가져오려면 처음부터 다시 만들어야 하며, list_custom_actions는 작업이 존재하는 동안에만 구성을 반환합니다.

{ id, note }를 반환하며, 여기서 note는 일반 언어로 삭제를 확인합니다.

06

통화

비즈니스의 통화 기록, 개별 통화 세부 정보 및 대화 내용을 읽습니다. 완료된 통화만 표시됩니다. 통화는 종료 직후에 나타납니다.

통화 기록을 최신순으로 나열하고 필터링합니다. 대화 내용이나 요약이 없는 간결한 행입니다(이러한 항목은 아래 도구를 사용하세요).

매개변수유형설명
statuses열거형[] 선택결과별 필터링, 각 통화는 정확히 하나: test · blocked · spam · hungUp · completed.
query문자열 선택통화 요약 및 대화 내용에 대한 자유 텍스트 검색.
tags문자열[] 선택이러한 태그 중 하나라도 있는 통화 일치(이름 또는 ID로).
startDate날짜 선택순수 YYYY-MM-DD = 비즈니스 시간대의 달력 날짜 또는 전체 ISO 날짜/시간.
endDate날짜 선택위와 동일, 포함.
archived부울 선택활성 통화 대신 보관된 통화를 반환합니다. 기본값 false.
offset, limit숫자 선택페이지 매김. limit는 1–100, 기본값 25.

통화 행(발신자, 시간, 기간, 결과, 태그, 연결된 연락처, 대화 턴 수) 및 totalCount를 반환합니다.

개별 통화의 전체 세부 정보, 대화 내용 텍스트와 녹음을 제외한 모든 것.

매개변수유형설명
callId문자열 필수list_calls의 숫자 통화 ID.

시간, 결과, 발신자 및 리셉셔니스트 번호, AI 작성 요약, 캡처된 데이터 필드, 에이전트가 사용한 스킬(각각 실행 시점 포함), 태그, 팀의 댓글 및 대화 턴 수를 반환합니다.

개별 통화의 대화 텍스트를 순서가 지정된 턴으로, 각각 [mm:ss] 오프셋과 발신자가 표시됩니다.

매개변수유형설명
callId문자열 필수list_calls의 숫자 통화 ID.
offset, limit숫자 선택턴 페이지 매김. limit는 1–200, 기본값 100. 일반적인 통화는 한 응답에 맞습니다. 더 많은 턴이 남아 있다는 메모가 있을 때만 페이지를 넘기세요.

발신자는 Agent(AI 리셉셔니스트), Caller(전화를 건 사람), Transferee(통화가 전달된 사람)입니다.

턴(오프셋, 발신자, 텍스트) 및 totalCount를 반환합니다.

FAQ

Upfirst가 내 전화를 받기 시작하게 하려면 어떻게 해야 하나요?

전화번호를 드립니다. 그 번호를 알리고 사람들이 직접 전화하게 할 수 있지만, 대부분의 비즈니스는 이미 사용 중인 번호에서 전화를 착신 전환합니다.

전환할 양을 선택할 수 있습니다: 모든 통화, 놓친 통화만, 또는 전화, 통신사, VoIP 시스템에 따라 특정 시간에만. 단계는 공급자마다 다르므로 모든 통화를 Upfirst로 전환에서 확인하세요.

API 키가 필요한가요?

아니요. 인증은 표준 OAuth 2.1 로그인입니다. 첫 번째 호출에서 Upfirst의 로그인 페이지가 열리고, 한 번 승인하면 복사, 붙여넣기, 저장할 것이 없습니다.

어떤 AI 어시스턴트와 함께 사용할 수 있나요?

HTTP를 통한 원격 MCP 서버를 지원하는 모든 클라이언트. 연결 섹션에 Claude, ChatGPT, Claude Code, Cursor, VS Code 및 Codex 설정이 있습니다. 다른 것은 https://mcp.upfirst.ai를 스트리밍 가능한 HTTP 서버로 가리키면 첫 번째 호출에서 로그인을 처리합니다.

내 어시스턴트가 무엇에 접근할 수 있나요?

로그인한 조직만. 모든 도구는 해당 조직으로 범위가 지정되며, 다른 조직의 ID는 절대 접근할 수 없습니다. 그 안에서 어시스턴트는 통화 및 대화 내용을 읽고 리셉셔니스트 설정, 스킬, 지식 및 사용자 지정 작업을 변경하고 각각이 적용되는 리셉셔니스트를 선택할 수 있으므로, 대시보드에 로그인한 것처럼 연결을 취급하세요.

방금 받은 통화가 표시되지 않는 이유는 무엇인가요? Only finished calls appear, and a call shows up shortly after it ends. Calls in progress are not available until they hang up. If a call is still missing, check whether it was archived, since list_calls returns active calls unless you pass archived: true.

What can't I do over MCP?

Voice, timezone, and language; scheduling skills; OAuth connections for custom actions; deleting a transfer skill; and importing knowledge from a website are all managed in the Upfirst dashboard. Call recordings are not available over this connection either. The tools say so where it applies.