Comments

Comments are short text notes in a thread with a common context.

Terminology

thread

a group of comments

context

the Sheep URI that the comments all refer to

comment

the text snippet, automatically logged against the user and the current date & time

key

a unique ID for the thread (to allow multiple threads to exist on the same context)

$CONTEXT is shorthand for the URI that we are commenting about a full URI would look like /api/v1/example/organisation/5fa523e080859e33dc285c7e/threads/

Start a thread

Create a new thread with no comments, a unique key for the thread is optional.

$ http POST https://sls-api.sheepcrm.com/comments/v2/$CONTEXT/ "Authorization: Bearer $API_KEY" title="So I have a question..."
HTTP/1.0 201 Created

{
    "bucket": "example",
    "data": {
        "context": {
            "display_value": "JW Travel",
            "ref": "/example/organisation/5fa523e080859e33dc285c7e/"
        },
        "key": "c3c0fecd38",
        "legacy_uid": null,
        "thread": {
            "comments": []
        },
        "title": "So I have a question..."
    },
    ...
    "uri": "/example/comment/603e35982e77f9de9421d470/"
}

Start a new thread and provide the first comment

$ http POST https://sls-api.sheepcrm.com/comments/v2/$CONTEXT/ "Authorization: Bearer $API_KEY" title="So I have a question..." comment="Do you think these guys like us?"

View all threads

$ http GET https://sls-api.sheepcrm.com/comments/v2/$CONTEXT/"Authorization: Bearer $API_KEY"
HTTP/1.0 200 OK

{
    "comments": {
        "37d91faf3": {
            "comments": [],
            "title": "pricing query",
            "uri": "/example/comment/603e326a535341676d33bb4c/"
        },
        "8e75026d34": {
            "comments": [
                {
                    "comment": "Do you think these guys like us?",
                    "datetime": "2021-03-02T13:00:21.187000",
                    "uid": "f7d95f2939",
                    "user": "/sheepcrm/user/5cab33e1638e5512a16d4a1f/"
                }
            ],
            "title": "So I have a question...",
            "uri": "/example/comment/603e36e52e77f9de9421d473/"
        },
    },
}

Delete a thread

$ http DELETE https://sls-api.sheepcrm.com/comments/v2/$CONTEXT/thread/{key}/ "Authorization: Bearer $API_KEY"
HTTP/1.0 200 OK

{
    "deleted": true
}

View a specific thread

$ http GET https://sls-api.sheepcrm.com/comments/v2/$CONTEXT/thread/{key}/comment/ "Authorization: Bearer $API_KEY"
HTTP/1.0 200 OK

{
    "thread": [
        {
            "comment": "Do you think these guys like us?",
            "datetime": "2023-04-14T15:55:31.454000",
            "uid": "bc28e4bdf",
            "user": "/sheepcrm/user/.../",
            "user_display": "Support User",
            "user_images": {
                ...
            }
        },
        {
            "comment": "Yeah, probably!",
            "datetime": "2023-04-14T16:13:11.430000",
            "uid": "488d65d531",
            "user": "/sheepcrm/user/.../",
            "user_display": "Support User",
            "user_images": {
                ...
            }
        }
    ],
    "title": "So I have a question...",
    "tuid": "537b52d3b4",
    "uri": "/example/comment/603e36e52e77f9de9421d473/"
}

Comment on a thread

comment

required: text comment

key

required: the thread key

$ http POST https://sls-api.sheepcrm.com/comments/v2/$CONTEXT/thread/{key}/comment/ "Authorization: Bearer $API_KEY" comment="Why wouldn't they like us?"
HTTP/1.0 200 OK

{
    "comments": {
        "comments": [
            {
                "comment": "Do you think these guys like us?",
                "datetime": "2021-03-02T13:00:21.187000",
                "uid": "f7d95f2939",
                "user": "/sheepcrm/user/5cab33e1638e5512a16d4a1f/"
            },
            {
                "comment": "Why wouldn't they like us?",
                "datetime": "2021-03-02T13:04:22.711633",
                "uid": "204f6a060d",
                "user": "/sheepcrm/user/5cab33e1638e5512a16d4a1f/"
            }
        ]
    }
}

Delete a comment

$ http DELETE https://sls-api.sheepcrm.com/comments/v2/$CONTEXT/thread/{key}/comment/{comment-uid}/ "Authorization: Bearer $API_KEY"
HTTP/1.0 200 OK

{
    "comments": {
        "comments": [
            {
                "comment": "Why wouldn't they like us?",
                "datetime": "2021-03-02T13:04:22.711000",
                "uid": "204f6a060d",
                "user": "/sheepcrm/user/5cab33e1638e5512a16d4a1f/"
            }
        ]
    }
}