{
  "service": "envoy",
  "displayName": "Envoy",
  "categories": [
    "Productivity",
    "Security"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "Client API Key",
      "placeholder": "ENVOY_CLIENT_API_KEY",
      "description": "Envoy Client API Key sent in the X-API-Key header for private apps. Create a private app and generate a Client API Key in the Envoy dashboard: https://developers.envoy.com/hub/docs/client-api-keys."
    }
  ],
  "homepageUrl": "https://envoy.com",
  "actions": [
    {
      "id": "envoy.get_employee",
      "service": "envoy",
      "name": "get_employee",
      "description": "Fetch one Envoy employee by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "The Envoy resource ID."
          }
        },
        "additionalProperties": false,
        "required": [
          "id"
        ],
        "description": "Input parameters for fetching one Envoy resource by ID."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "employee": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1,
                "description": "The Envoy employee ID."
              },
              "name": {
                "type": "string",
                "minLength": 1,
                "description": "The employee full name."
              },
              "email": {
                "type": "string",
                "description": "The employee email address.",
                "format": "email"
              },
              "createdAt": {
                "type": "string",
                "description": "The employee creation timestamp."
              },
              "updatedAt": {
                "type": "string",
                "description": "The employee update timestamp."
              }
            },
            "additionalProperties": true,
            "required": [
              "id",
              "name",
              "email"
            ],
            "description": "An Envoy employee."
          },
          "meta": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Metadata returned by Envoy for this API response."
          }
        },
        "additionalProperties": false,
        "required": [
          "employee",
          "meta"
        ],
        "description": "The Envoy employee response."
      }
    },
    {
      "id": "envoy.get_flow",
      "service": "envoy",
      "name": "get_flow",
      "description": "Fetch one Envoy sign-in flow by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "The Envoy resource ID."
          }
        },
        "additionalProperties": false,
        "required": [
          "id"
        ],
        "description": "Input parameters for fetching one Envoy resource by ID."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "flow": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1,
                "description": "The Envoy flow ID."
              },
              "name": {
                "type": "string",
                "minLength": 1,
                "description": "The flow name."
              },
              "type": {
                "type": "string",
                "description": "The flow type, such as VISITOR or EMPLOYEE."
              },
              "enabled": {
                "type": "boolean",
                "description": "Whether the flow is enabled for visitor registration."
              },
              "locationId": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The location ID linked to the flow."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "createdAt": {
                "type": "string",
                "description": "The flow creation timestamp."
              },
              "updatedAt": {
                "type": "string",
                "description": "The flow update timestamp."
              }
            },
            "additionalProperties": true,
            "required": [
              "id",
              "name"
            ],
            "description": "An Envoy sign-in flow."
          },
          "meta": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Metadata returned by Envoy for this API response."
          }
        },
        "additionalProperties": false,
        "required": [
          "flow",
          "meta"
        ],
        "description": "The Envoy flow response."
      }
    },
    {
      "id": "envoy.get_invite",
      "service": "envoy",
      "name": "get_invite",
      "description": "Fetch one Envoy invite by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "The Envoy resource ID."
          }
        },
        "additionalProperties": false,
        "required": [
          "id"
        ],
        "description": "Input parameters for fetching one Envoy resource by ID."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "invite": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1,
                "description": "The Envoy invite ID."
              },
              "expectedArrivalAt": {
                "type": "string",
                "description": "The invite expected arrival timestamp."
              },
              "expectedDepartureAt": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The invite expected departure timestamp."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "type": {
                "type": "string",
                "description": "The invite type, such as VISITOR or EMPLOYEE."
              },
              "approvalStatus": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The current invite approval status."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "flowId": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The flow ID linked to the invite."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "locationId": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The location ID linked to the invite."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "notes": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Internal notes attached to the invite."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "invitee": {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "A nested Envoy user view object."
              },
              "host": {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "A nested Envoy user view object."
              },
              "photoUrl": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The invitee photo URL when present."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "createdAt": {
                "type": "string",
                "description": "The invite creation timestamp."
              },
              "updatedAt": {
                "type": "string",
                "description": "The invite update timestamp."
              }
            },
            "additionalProperties": true,
            "required": [
              "id"
            ],
            "description": "An Envoy invite."
          },
          "meta": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Metadata returned by Envoy for this API response."
          }
        },
        "additionalProperties": false,
        "required": [
          "invite",
          "meta"
        ],
        "description": "The Envoy invite response."
      }
    },
    {
      "id": "envoy.get_location",
      "service": "envoy",
      "name": "get_location",
      "description": "Fetch one Envoy location by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "The Envoy resource ID."
          }
        },
        "additionalProperties": false,
        "required": [
          "id"
        ],
        "description": "Input parameters for fetching one Envoy resource by ID."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "location": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1,
                "description": "The Envoy location ID."
              },
              "name": {
                "type": "string",
                "minLength": 1,
                "description": "The Envoy location name."
              },
              "enabled": {
                "type": "boolean",
                "description": "Whether the location is active."
              },
              "companyId": {
                "type": "string",
                "description": "The Envoy company ID that owns this location."
              },
              "locale": {
                "type": "string",
                "description": "The location locale."
              },
              "timezone": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The location time zone."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "logoUrl": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The location logo URL."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "capacityLimit": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The maximum location capacity when present."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "address": {
                "type": "object",
                "properties": {
                  "line1": {
                    "type": "string",
                    "description": "The first address line."
                  },
                  "line2": {
                    "anyOf": [
                      {
                        "type": "string",
                        "description": "The second address line."
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "city": {
                    "type": "string",
                    "description": "The address city."
                  },
                  "state": {
                    "type": "string",
                    "description": "The address state or region."
                  },
                  "postalCode": {
                    "type": "string",
                    "description": "The postal code."
                  },
                  "country": {
                    "type": "string",
                    "description": "The country."
                  },
                  "latitude": {
                    "type": "number",
                    "description": "The latitude coordinate."
                  },
                  "longitude": {
                    "type": "number",
                    "description": "The longitude coordinate."
                  }
                },
                "additionalProperties": true,
                "description": "A physical address returned by Envoy."
              },
              "createdAt": {
                "type": "string",
                "description": "The location creation timestamp."
              },
              "updatedAt": {
                "type": "string",
                "description": "The location update timestamp."
              }
            },
            "additionalProperties": true,
            "required": [
              "id",
              "name"
            ],
            "description": "An Envoy location."
          },
          "meta": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Metadata returned by Envoy for this API response."
          }
        },
        "additionalProperties": false,
        "required": [
          "location",
          "meta"
        ],
        "description": "The Envoy location response."
      }
    },
    {
      "id": "envoy.list_employees",
      "service": "envoy",
      "name": "list_employees",
      "description": "List Envoy employees with optional search filters and pagination.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "The Envoy resource ID."
            },
            "description": "Envoy IDs to fetch in one list request.",
            "minItems": 1
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "The page number for pagination."
          },
          "perPage": {
            "type": "integer",
            "minimum": 1,
            "description": "The number of records to return per page."
          },
          "order": {
            "type": "string",
            "enum": [
              "ASC",
              "DESC"
            ],
            "description": "The sort direction."
          },
          "name": {
            "type": "string",
            "description": "The employee full name search string. Envoy supports partial matches."
          },
          "email": {
            "type": "string",
            "description": "The employee email search string. Envoy supports partial matches."
          },
          "sort": {
            "type": "string",
            "enum": [
              "NAME",
              "EMAIL"
            ],
            "description": "The employee field to sort by."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for listing Envoy employees."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "employees": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "minLength": 1,
                  "description": "The Envoy employee ID."
                },
                "name": {
                  "type": "string",
                  "minLength": 1,
                  "description": "The employee full name."
                },
                "email": {
                  "type": "string",
                  "description": "The employee email address.",
                  "format": "email"
                },
                "createdAt": {
                  "type": "string",
                  "description": "The employee creation timestamp."
                },
                "updatedAt": {
                  "type": "string",
                  "description": "The employee update timestamp."
                }
              },
              "additionalProperties": true,
              "required": [
                "id",
                "name",
                "email"
              ],
              "description": "An Envoy employee."
            },
            "description": "Employees returned by Envoy."
          },
          "meta": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Metadata returned by Envoy for this API response."
          }
        },
        "additionalProperties": false,
        "required": [
          "employees",
          "meta"
        ],
        "description": "The Envoy employees list response."
      }
    },
    {
      "id": "envoy.list_flows",
      "service": "envoy",
      "name": "list_flows",
      "description": "List Envoy sign-in flows with optional filters and pagination.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "The Envoy resource ID."
            },
            "description": "Envoy IDs to fetch in one list request.",
            "minItems": 1
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "The page number for pagination."
          },
          "perPage": {
            "type": "integer",
            "minimum": 1,
            "description": "The number of records to return per page."
          },
          "order": {
            "type": "string",
            "enum": [
              "ASC",
              "DESC"
            ],
            "description": "The sort direction."
          },
          "locationIds": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "The Envoy resource ID."
            },
            "description": "Envoy IDs to fetch in one list request.",
            "minItems": 1
          },
          "enabled": {
            "type": "boolean",
            "description": "Whether to return only enabled or disabled flows."
          },
          "name": {
            "type": "string",
            "description": "The flow name search string."
          },
          "type": {
            "type": "string",
            "enum": [
              "VISITOR",
              "EMPLOYEE"
            ],
            "description": "The flow type."
          },
          "sort": {
            "type": "string",
            "enum": [
              "NAME",
              "CREATED_AT"
            ],
            "description": "The flow field to sort by."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for listing Envoy flows."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "flows": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "minLength": 1,
                  "description": "The Envoy flow ID."
                },
                "name": {
                  "type": "string",
                  "minLength": 1,
                  "description": "The flow name."
                },
                "type": {
                  "type": "string",
                  "description": "The flow type, such as VISITOR or EMPLOYEE."
                },
                "enabled": {
                  "type": "boolean",
                  "description": "Whether the flow is enabled for visitor registration."
                },
                "locationId": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The location ID linked to the flow."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "createdAt": {
                  "type": "string",
                  "description": "The flow creation timestamp."
                },
                "updatedAt": {
                  "type": "string",
                  "description": "The flow update timestamp."
                }
              },
              "additionalProperties": true,
              "required": [
                "id",
                "name"
              ],
              "description": "An Envoy sign-in flow."
            },
            "description": "Flows returned by Envoy."
          },
          "meta": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Metadata returned by Envoy for this API response."
          }
        },
        "additionalProperties": false,
        "required": [
          "flows",
          "meta"
        ],
        "description": "The Envoy flows list response."
      }
    },
    {
      "id": "envoy.list_invites",
      "service": "envoy",
      "name": "list_invites",
      "description": "List Envoy invites with optional filters and pagination.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "The Envoy resource ID."
            },
            "description": "Envoy IDs to fetch in one list request.",
            "minItems": 1
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "The page number for pagination."
          },
          "perPage": {
            "type": "integer",
            "minimum": 1,
            "description": "The number of records to return per page."
          },
          "order": {
            "type": "string",
            "enum": [
              "ASC",
              "DESC"
            ],
            "description": "The sort direction."
          },
          "locationIds": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "The Envoy resource ID."
            },
            "description": "Envoy IDs to fetch in one list request.",
            "minItems": 1
          },
          "expectedArrivalAtBefore": {
            "type": "string",
            "description": "Return invites expected before this UTC timestamp.",
            "format": "date-time"
          },
          "expectedArrivalAtAfter": {
            "type": "string",
            "description": "Return invites expected after this UTC timestamp.",
            "format": "date-time"
          },
          "hostEmail": {
            "type": "string",
            "description": "The host email address used to filter invites."
          },
          "inviteeEmail": {
            "type": "string",
            "description": "The invitee email address used to filter invites."
          },
          "type": {
            "type": "string",
            "enum": [
              "VISITOR",
              "EMPLOYEE"
            ],
            "description": "The invite type."
          },
          "approvalStatus": {
            "type": "string",
            "enum": [
              "PENDING",
              "APPROVED",
              "DENIED",
              "AWAITING_REVIEW"
            ],
            "description": "The invite approval status."
          },
          "sort": {
            "type": "string",
            "enum": [
              "EXPECTED_ARRIVAL_AT",
              "CREATED_AT"
            ],
            "description": "The invite field to sort by."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for listing Envoy invites."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "invites": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "minLength": 1,
                  "description": "The Envoy invite ID."
                },
                "expectedArrivalAt": {
                  "type": "string",
                  "description": "The invite expected arrival timestamp."
                },
                "expectedDepartureAt": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The invite expected departure timestamp."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "type": {
                  "type": "string",
                  "description": "The invite type, such as VISITOR or EMPLOYEE."
                },
                "approvalStatus": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The current invite approval status."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "flowId": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The flow ID linked to the invite."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "locationId": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The location ID linked to the invite."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "notes": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "Internal notes attached to the invite."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "invitee": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "A nested Envoy user view object."
                },
                "host": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "A nested Envoy user view object."
                },
                "photoUrl": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The invitee photo URL when present."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "createdAt": {
                  "type": "string",
                  "description": "The invite creation timestamp."
                },
                "updatedAt": {
                  "type": "string",
                  "description": "The invite update timestamp."
                }
              },
              "additionalProperties": true,
              "required": [
                "id"
              ],
              "description": "An Envoy invite."
            },
            "description": "Invites returned by Envoy."
          },
          "meta": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Metadata returned by Envoy for this API response."
          }
        },
        "additionalProperties": false,
        "required": [
          "invites",
          "meta"
        ],
        "description": "The Envoy invites list response."
      }
    },
    {
      "id": "envoy.list_locations",
      "service": "envoy",
      "name": "list_locations",
      "description": "List Envoy locations with optional filters and pagination.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "The Envoy resource ID."
            },
            "description": "Envoy IDs to fetch in one list request.",
            "minItems": 1
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "The page number for pagination."
          },
          "perPage": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "The number of records to return per page."
          },
          "order": {
            "type": "string",
            "enum": [
              "ASC",
              "DESC"
            ],
            "description": "The sort direction."
          },
          "createdAtAfter": {
            "type": "string",
            "description": "Return locations created at or after this UTC timestamp.",
            "format": "date-time"
          },
          "createdAtBefore": {
            "type": "string",
            "description": "Return locations created at or before this UTC timestamp.",
            "format": "date-time"
          },
          "enabled": {
            "type": "boolean",
            "description": "Whether to return active or inactive locations."
          },
          "sort": {
            "type": "string",
            "enum": [
              "createdAt",
              "updatedAt"
            ],
            "description": "The location field to sort by."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for listing Envoy locations."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "locations": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "minLength": 1,
                  "description": "The Envoy location ID."
                },
                "name": {
                  "type": "string",
                  "minLength": 1,
                  "description": "The Envoy location name."
                },
                "enabled": {
                  "type": "boolean",
                  "description": "Whether the location is active."
                },
                "companyId": {
                  "type": "string",
                  "description": "The Envoy company ID that owns this location."
                },
                "locale": {
                  "type": "string",
                  "description": "The location locale."
                },
                "timezone": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The location time zone."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "logoUrl": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The location logo URL."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "capacityLimit": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "description": "The maximum location capacity when present."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "address": {
                  "type": "object",
                  "properties": {
                    "line1": {
                      "type": "string",
                      "description": "The first address line."
                    },
                    "line2": {
                      "anyOf": [
                        {
                          "type": "string",
                          "description": "The second address line."
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "city": {
                      "type": "string",
                      "description": "The address city."
                    },
                    "state": {
                      "type": "string",
                      "description": "The address state or region."
                    },
                    "postalCode": {
                      "type": "string",
                      "description": "The postal code."
                    },
                    "country": {
                      "type": "string",
                      "description": "The country."
                    },
                    "latitude": {
                      "type": "number",
                      "description": "The latitude coordinate."
                    },
                    "longitude": {
                      "type": "number",
                      "description": "The longitude coordinate."
                    }
                  },
                  "additionalProperties": true,
                  "description": "A physical address returned by Envoy."
                },
                "createdAt": {
                  "type": "string",
                  "description": "The location creation timestamp."
                },
                "updatedAt": {
                  "type": "string",
                  "description": "The location update timestamp."
                }
              },
              "additionalProperties": true,
              "required": [
                "id",
                "name"
              ],
              "description": "An Envoy location."
            },
            "description": "Locations returned by Envoy."
          },
          "meta": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Metadata returned by Envoy for this API response."
          }
        },
        "additionalProperties": false,
        "required": [
          "locations",
          "meta"
        ],
        "description": "The Envoy locations list response."
      }
    }
  ]
}
