Skip to main content

Python client for Clappia API integration

Project description

Clappia Tools

LangChain integration for Clappia API

PyPI - Python Version License: MIT


Overview

Clappia Tools is a Python package that provides a unified client and a set of tools for seamless integration with the Clappia API. It enables developers to automate workflows, manage submissions, and interact with Clappia apps programmatically. The package is designed for use in automation, data integration, and agent-based systems (e.g., LangChain agents).


Features

  • Unified API Client: One client for all Clappia API operations.
  • Submission Management: Create, edit, update owners, and change status of submissions.
  • App Definition Retrieval: Fetch complete app structure and metadata.
  • Input Validation: Built-in validation for IDs, emails, and status objects.
  • Extensible Tools: Modular functions for each operation, easily integrated into agents or scripts.
  • Comprehensive Testing: Includes unit and integration tests.

Installation

pip install clappia-tools

Or, for development:

git clone https://github.com/clappia-dev/clappia-tools.git
cd clappia-tools
pip install -e .[dev]

Configuration

You must provide your Clappia API credentials and workspace information directly when initializing the ClappiaClient:

  • api_key: Your Clappia API key
  • base_url: The base URL for the Clappia API (e.g., https://api.clappia.com)
  • workplace_id: Your Clappia workplace ID

Example:

from clappia_tools import ClappiaClient

client = ClappiaClient(
    api_key="your-api-key",
    base_url="https://api.clappia.com",
    workplace_id="your-workplace-id"
)

Usage

Basic Client Usage

from clappia_tools import ClappiaClient

client = ClappiaClient(
    api_key="your-api-key",
    base_url="https://api.clappia.com",
    workplace_id="your-workplace-id"
)

# Create a submission
result = client.create_submission(
    app_id="MFX093412",
    data={"employee_name": "John Doe", "department": "Engineering"},
    email="user@example.com"
)
print(result)

# Edit a submission
result = client.edit_submission(
    app_id="MFX093412",
    submission_id="HGO51464561",
    data={"department": "Marketing"},
    email="user@example.com"
)
print(result)

# Get app definition
result = client.get_app_definition(app_id="MFX093412")
print(result)

Tool Functions

You can also use the modular tool functions directly:

from clappia_tools._tools import (
    create_clappia_submission,
    edit_clappia_submission,
    get_app_definition,
    update_clappia_submission_owners,
    update_clappia_submission_status,
)

# Create a submission
data = {"employee_name": "Jane Doe", "department": "HR"}
response = create_clappia_submission("MFX093412", data, "user@example.com")
print(response)

# Update submission owners
response = update_clappia_submission_owners(
    "MFX093412", "HGO51464561", "admin@example.com", ["user1@company.com", "user2@company.com"]
)
print(response)

# Update submission status
response = update_clappia_submission_status(
    "MFX093412", "HGO51464561", "admin@example.com", {"statusName": "Approved", "comments": "Reviewed."}
)
print(response)

Available Tools

  • create_clappia_submission(app_id, data, email)
  • edit_clappia_submission(app_id, submission_id, data, email)
  • get_app_definition(app_id, language="en", strip_html=True, include_tags=True)
  • update_clappia_submission_owners(app_id, submission_id, requesting_user_email_address, email_ids)
  • update_clappia_submission_status(app_id, submission_id, requesting_user_email_address, status)

See docstrings in each tool for detailed argument and return value descriptions.


Input Validation

  • App ID: Must be uppercase letters and numbers (e.g., MFX093412).
  • Submission ID: Must be uppercase letters and numbers (e.g., HGO51464561).
  • Email: Must be a valid email address.
  • Status: Must be a dictionary with a non-empty statusName or name field.

Invalid inputs will return descriptive error messages.


Testing

Run all tests (unit and integration):

pytest

Contributing

  1. Fork the repository and create your branch.
  2. Write clear, well-documented code and tests.
  3. Run pytest and ensure all tests pass.
  4. Submit a pull request with a clear description of your changes.

License

This project is licensed under the MIT License. See LICENSE for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

clappia_api_tools-0.1.5.tar.gz (23.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

clappia_api_tools-0.1.5-py3-none-any.whl (29.7 kB view details)

Uploaded Python 3

File details

Details for the file clappia_api_tools-0.1.5.tar.gz.

File metadata

  • Download URL: clappia_api_tools-0.1.5.tar.gz
  • Upload date:
  • Size: 23.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.6.16

File hashes

Hashes for clappia_api_tools-0.1.5.tar.gz
Algorithm Hash digest
SHA256 ca152ff00b18fc10b96235e89e7d420ca532f33e0f46a5bd0701ac44f7108a5d
MD5 afaf5b9ae55a8b6f304c7cf386d13738
BLAKE2b-256 03968bd93e3f7ffa5c8e1de8c6f6a8d762347b464a1c2e3b0df5bc72abde91e5

See more details on using hashes here.

File details

Details for the file clappia_api_tools-0.1.5-py3-none-any.whl.

File metadata

File hashes

Hashes for clappia_api_tools-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 bd01371f3a30427770da41a62e6f0b7445dfa00cdb670e7e479ccde4c682b72b
MD5 d911a4e12998a03acfa64c38caafbdd3
BLAKE2b-256 236ac2614e72e990208a0a959ff5a0ac0d24c1ed43a63a69e823418eb3cc92a6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page