{
  "service": "reply_io",
  "displayName": "Reply.io",
  "categories": [
    "Marketing",
    "Communication"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Key",
      "placeholder": "REPLY_IO_API_KEY",
      "description": "Reply.io API key sent as an Authorization Bearer token. Create or copy it in the Reply.io dashboard under Settings > API Key: https://run.reply.io."
    }
  ],
  "homepageUrl": "https://reply.io",
  "actions": [
    {
      "id": "reply_io.create_contact",
      "service": "reply_io",
      "name": "create_contact",
      "description": "Create a Reply.io contact using standard contact fields.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "description": "Contact email address.",
            "format": "email"
          },
          "firstName": {
            "type": "string",
            "description": "Contact first name."
          },
          "lastName": {
            "type": "string",
            "description": "Contact last name."
          },
          "company": {
            "type": "string",
            "description": "Contact company name."
          },
          "title": {
            "type": "string",
            "description": "Contact job title."
          },
          "phone": {
            "type": "string",
            "description": "Contact phone number."
          },
          "city": {
            "type": "string",
            "description": "Contact city."
          },
          "state": {
            "type": "string",
            "description": "Contact state or province."
          },
          "country": {
            "type": "string",
            "description": "Contact country."
          },
          "industry": {
            "type": "string",
            "description": "Contact industry."
          },
          "companySize": {
            "type": "string",
            "description": "Contact company size range."
          },
          "timeZone": {
            "type": "string",
            "description": "Contact timezone identifier."
          },
          "linkedInProfile": {
            "type": "string",
            "minLength": 1,
            "description": "Contact LinkedIn profile URL."
          },
          "linkedInSalesNavigator": {
            "type": "string",
            "minLength": 1,
            "description": "Contact LinkedIn Sales Navigator URL."
          },
          "linkedInRecruiter": {
            "type": "string",
            "minLength": 1,
            "description": "Contact LinkedIn Recruiter URL."
          },
          "notes": {
            "type": "string",
            "description": "Notes to store on the contact."
          },
          "ownerUserId": {
            "type": "integer",
            "minimum": 1,
            "description": "Reply.io user ID that should own the contact."
          },
          "customFields": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "key": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Custom field key."
                },
                "value": {
                  "oneOf": [
                    {
                      "type": "string",
                      "description": "String custom field value."
                    },
                    {
                      "type": "number",
                      "description": "Numeric custom field value."
                    },
                    {
                      "type": "boolean",
                      "description": "Boolean custom field value."
                    },
                    {
                      "type": "null",
                      "description": "Null custom field value."
                    }
                  ]
                }
              },
              "additionalProperties": false,
              "description": "Reply.io contact custom field value."
            },
            "description": "Custom field values to store on the contact.",
            "minItems": 1
          }
        },
        "additionalProperties": false,
        "description": "Fields for creating a Reply.io contact. Provide at least email or a LinkedIn URL.",
        "anyOf": [
          {
            "required": [
              "email"
            ]
          },
          {
            "required": [
              "linkedInProfile"
            ]
          },
          {
            "required": [
              "linkedInSalesNavigator"
            ]
          },
          {
            "required": [
              "linkedInRecruiter"
            ]
          }
        ]
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "contact": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Reply.io contact object, including standard contact fields and custom fields when available."
          }
        },
        "additionalProperties": false,
        "description": "Reply.io contact response."
      }
    },
    {
      "id": "reply_io.get_contact",
      "service": "reply_io",
      "name": "get_contact",
      "description": "Get a Reply.io contact by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "minimum": 1,
            "description": "Reply.io resource ID."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for retrieving a Reply.io contact."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "contact": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Reply.io contact object, including standard contact fields and custom fields when available."
          }
        },
        "additionalProperties": false,
        "description": "Reply.io contact response."
      }
    },
    {
      "id": "reply_io.get_current_user",
      "service": "reply_io",
      "name": "get_current_user",
      "description": "Get the authenticated Reply.io user ID and username.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "No input is required to retrieve the current Reply.io user."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "user": {
            "type": "object",
            "properties": {
              "userId": {
                "type": "integer",
                "description": "The authenticated user's Reply.io ID."
              },
              "username": {
                "type": "string",
                "description": "The authenticated user's username."
              }
            },
            "additionalProperties": false,
            "description": "Authenticated Reply.io user information."
          }
        },
        "additionalProperties": false,
        "description": "Authenticated Reply.io user response."
      }
    },
    {
      "id": "reply_io.get_sequence",
      "service": "reply_io",
      "name": "get_sequence",
      "description": "Get a Reply.io sequence by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "minimum": 1,
            "description": "Reply.io resource ID."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for retrieving a Reply.io sequence."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "sequence": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Reply.io sequence object, including owner, status, archive, health, and detail fields when available."
          }
        },
        "additionalProperties": false,
        "description": "Reply.io sequence response."
      }
    },
    {
      "id": "reply_io.list_contacts",
      "service": "reply_io",
      "name": "list_contacts",
      "description": "List Reply.io contacts with optional pagination.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "top": {
            "type": "integer",
            "minimum": 1,
            "maximum": 1000,
            "description": "Maximum number of contacts to return. Reply.io defaults to 25."
          },
          "skip": {
            "type": "integer",
            "minimum": 0,
            "description": "Number of contacts to skip before returning results."
          }
        },
        "additionalProperties": false,
        "description": "Query parameters for listing Reply.io contacts."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "contacts": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "Reply.io contact object, including standard contact fields and custom fields when available."
            },
            "description": "Reply.io contacts returned by the API."
          },
          "hasMore": {
            "type": "boolean",
            "description": "Whether Reply.io has more matching records after this page."
          }
        },
        "additionalProperties": false,
        "description": "Paginated Reply.io contact list response."
      }
    },
    {
      "id": "reply_io.list_sequences",
      "service": "reply_io",
      "name": "list_sequences",
      "description": "List Reply.io sequences with optional pagination and filters.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "top": {
            "type": "integer",
            "minimum": 1,
            "maximum": 1000,
            "description": "Maximum number of sequences to return. Reply.io defaults to 25."
          },
          "skip": {
            "type": "integer",
            "minimum": 0,
            "description": "Number of sequences to skip before returning results."
          },
          "status": {
            "type": "string",
            "enum": [
              "active",
              "paused",
              "new"
            ],
            "description": "Sequence status to filter by."
          },
          "ownerUserId": {
            "type": "integer",
            "minimum": 1,
            "description": "Reply.io user ID that owns the sequence."
          },
          "folderId": {
            "type": "string",
            "minLength": 1,
            "description": "Reply.io sequence folder UUID."
          },
          "isArchived": {
            "type": "boolean",
            "description": "Whether to return archived or non-archived sequences."
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Case-insensitive partial sequence name filter."
          }
        },
        "additionalProperties": false,
        "description": "Query parameters for listing Reply.io sequences."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "sequences": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "Reply.io sequence object, including owner, status, archive, health, and detail fields when available."
            },
            "description": "Reply.io sequences returned by the API."
          },
          "hasMore": {
            "type": "boolean",
            "description": "Whether Reply.io has more matching records after this page."
          }
        },
        "additionalProperties": false,
        "description": "Paginated Reply.io sequence list response."
      }
    },
    {
      "id": "reply_io.pause_sequence",
      "service": "reply_io",
      "name": "pause_sequence",
      "description": "Pause an active Reply.io sequence.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "minimum": 1,
            "description": "Reply.io resource ID."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for pausing a Reply.io sequence."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "sequence": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Reply.io sequence object, including owner, status, archive, health, and detail fields when available."
          }
        },
        "additionalProperties": false,
        "description": "Reply.io sequence response."
      }
    },
    {
      "id": "reply_io.start_sequence",
      "service": "reply_io",
      "name": "start_sequence",
      "description": "Start a paused or new Reply.io sequence.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "minimum": 1,
            "description": "Reply.io resource ID."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for starting a Reply.io sequence."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "sequence": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Reply.io sequence object, including owner, status, archive, health, and detail fields when available."
          }
        },
        "additionalProperties": false,
        "description": "Reply.io sequence response."
      }
    },
    {
      "id": "reply_io.update_contact",
      "service": "reply_io",
      "name": "update_contact",
      "description": "Update a Reply.io contact by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "minimum": 1,
            "description": "Reply.io contact ID to update."
          },
          "email": {
            "type": "string",
            "description": "Contact email address.",
            "format": "email"
          },
          "firstName": {
            "type": "string",
            "description": "Contact first name."
          },
          "lastName": {
            "type": "string",
            "description": "Contact last name."
          },
          "company": {
            "type": "string",
            "description": "Contact company name."
          },
          "title": {
            "type": "string",
            "description": "Contact job title."
          },
          "phone": {
            "type": "string",
            "description": "Contact phone number."
          },
          "city": {
            "type": "string",
            "description": "Contact city."
          },
          "state": {
            "type": "string",
            "description": "Contact state or province."
          },
          "country": {
            "type": "string",
            "description": "Contact country."
          },
          "industry": {
            "type": "string",
            "description": "Contact industry."
          },
          "companySize": {
            "type": "string",
            "description": "Contact company size range."
          },
          "timeZone": {
            "type": "string",
            "description": "Contact timezone identifier."
          },
          "linkedInProfile": {
            "type": "string",
            "minLength": 1,
            "description": "Contact LinkedIn profile URL."
          },
          "linkedInSalesNavigator": {
            "type": "string",
            "minLength": 1,
            "description": "Contact LinkedIn Sales Navigator URL."
          },
          "linkedInRecruiter": {
            "type": "string",
            "minLength": 1,
            "description": "Contact LinkedIn Recruiter URL."
          },
          "notes": {
            "type": "string",
            "description": "Notes to store on the contact."
          },
          "ownerUserId": {
            "type": "integer",
            "minimum": 1,
            "description": "Reply.io user ID that should own the contact."
          },
          "customFields": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "key": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Custom field key."
                },
                "value": {
                  "oneOf": [
                    {
                      "type": "string",
                      "description": "String custom field value."
                    },
                    {
                      "type": "number",
                      "description": "Numeric custom field value."
                    },
                    {
                      "type": "boolean",
                      "description": "Boolean custom field value."
                    },
                    {
                      "type": "null",
                      "description": "Null custom field value."
                    }
                  ]
                }
              },
              "additionalProperties": false,
              "description": "Reply.io contact custom field value."
            },
            "description": "Custom field values to store on the contact.",
            "minItems": 1
          }
        },
        "additionalProperties": false,
        "required": [
          "id"
        ],
        "description": "Fields for updating a Reply.io contact."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "contact": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Reply.io contact object, including standard contact fields and custom fields when available."
          }
        },
        "additionalProperties": false,
        "description": "Reply.io contact response."
      }
    }
  ]
}
