{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"96f0af66-94dc-4390-90ae-e98d251c5896","name":"CommunityWebAPI BETA","description":"# What is the CommunityWebAPI BETA?\n\nWelcome to the BETA documentation of CommunityWebAPI; a Restful service that provides data access to both internal and external clients of Community Workforce Management software. The API service is designed with the principles of REST (Representational State Transfer) in mind, although some variations from the pure REST design pattern exist. To jump right in and start working with the API you will want to begin with the Authentication Endpoints. However, to provide the best start for onboarding, below are a few details on the CommunityWebAPI to help you better understand the platform.\n\n**Note:** This CommunityWebAPI BETA is being continuously updated. Your downloaded copy may become out of date as a result. Please note the Last Updated date at the top of this documentatation. If your documenation is out of date, you can use the Run in Postman button again to update your copy as needed.\n\nIf you have any questions or need any particular endpoint documented more thoroughly, please reach out to the CommunityWebAPI team.\n\n# Getting Started\n\nThe various endpoints of the CommunityWebAPI are organized into categories to make navigation a bit easier. As you explore, clicking the folders containing each endpoint will offer additional details on how they are used and some of the common endpoints it contains.\n\nFor the endpoints themselves, you should see a description of each parameter required as well as example requests and responses to the right.\n\nWhen viewing the documentation online you can change between the various example requests using the drop down at the top right as shown below.\n\n<img src=\"https://content.pstmn.io/cdc2de28-b5c9-41c8-905e-05b6b74c2f07/aW1hZ2UucG5n\" width=\"1150\" height=\"815\">\n\nIf you use [Run in Postman](https://developer.communitywfm.com/#run-in-postman), the various examples will show up under each endpoint in the folder tree on the left.\n\n<img src=\"https://content.pstmn.io/61a8c8a5-2d68-46cd-ab62-ba5e115c8bfe/aW1hZ2UucG5n\" width=\"368\" height=\"749\">\n\nWhere possible, the parameters that are required for each endpoint are marked with REQUIRED in the description field. Some parameters are only required in certain contexts which will also be detailed. The best place to get started is by downloading this documentation as a collection using the Run in Postman button as detailed below.\n\n# Run in Postman\n\nIf you click Run in Postman you'll be given the option to download the API collection used in the documentation into your local Postman environment to use against your own server. In order to use this option you will first want to make sure you have Postman installed or at least a web account setup. You can download a copy from their official site [here](https://www.postman.com/downloads/). Once you have Postman installed or your account created click the Run in Postman button. You will be asked to run this online in a web based interface or via the application you downloaded. Either route should follow the same steps.\n\nYou will be prompted where to import the collection. This is requesting to know which workspace you would like to use. If this is a fresh install of Postman you can just choose My Workspace as shown below.\n\n**NOTE**: The documentation is being continuously updated so we recommend you update your downloaded POSTMAN collection periodically or subscribe to the collection to maintain the latest version.\n\n<img src=\"https://content.pstmn.io/20c97e8b-a19c-4e98-8057-76023cf226c2/aW1hZ2UucG5n\" width=\"429\" height=\"483\">\n\n# Creating an Environment\n\nAfter you import the collection you are nearly ready to start working. But you'll need to define your environment first. To do this first click on Enviornments on the left, then the New button next to Import at the top of the Environments list, and then in the pop up window click on Environment (as shown below).\n\n<img src=\"https://content.pstmn.io/f693e89b-d433-46fb-899f-d045e6300068/aW1hZ2UucG5n\" width=\"942\" height=\"571\">\n\nYou'll be prompted to name your environment first, then you'll want to define the following variables for your environment:\n\n- envName - This is the server name bbut with API on the end. For example if you connect using [https://YourServer.com/CommunityWeb](https://YourServer.com/CommunityWeb) then your envName variable's value would be [https://YourServer.com/CommunityWebApi](https://YourServer.com/CommunityWebApi).\n    \n- authName - This is the authenticating user name you want to use for connecting to the API.\n    \n- authPass - This is the password that goes with the user name above for authenticating the API.\n    \n- WFMSGAPIKEY - This variable, in all caps, you do not need to define. The API will fill this in as it authenticates with constantly changing authentication keys. To learn more about the authenticartion process click on the authentication folder for a general overview.\n    \n\nOnce this Environment is configured (see the example below for an example of a proper configuration) you are ready to begin working with the CommunityWFM API.\n\n<img src=\"https://content.pstmn.io/cb32623d-ccf0-4920-822b-09da7c9d650a/aW1hZ2UucG5n\" width=\"1064\" height=\"252\">\n\n# Authentication\n\nAll endpoints in the Postman Collection are using a Collection-level pre-request script to authenticate before each run to streamline your use of the Collection. You can find the details of this pre-request script by clicking on the CommunityWebAPI BETA collection and choosing the Pre-Request Script tab as shown below.\n\n<img src=\"https://content.pstmn.io/6f9832f3-f74c-40fc-a152-c464e152fa41/aW1hZ2UucG5n\" width=\"890\" height=\"178\">\n\nWhen writing your own code, however, you'll need to authenticate using the process detailed in the Authentication section. Just click the Authentication folder to see the full instructions on how to obtain and use authtokens from CommunityWebAPI.\n\n# Common Use Cases\n\nWhile there are many endpoints to cover a broad range of uses, there are a few common use cases that you may want to start with. Below are a few examples and links to the endpoints you can use to achieve them:\n\n1. Adding/Updating agents\n    \n    1. [POST Agent](https://developer.communitywfm.com/#750800a0-603b-46c7-882b-3aa2e8a3f204)\n        \n2. Adding/Updating agent schedule events\n    \n    1. [POST ScheduleEvent](https://developer.communitywfm.com/#da93a576-ed21-48de-a364-7839ec2bcc7e) (several options available; see included examples for more details)\n        \n3. Retrieving an agent schedules\n    \n    1. [GET PublishedSchedule](https://developer.communitywfm.com/#88897cbc-2cf8-44de-9ace-440fc2deb35b) (several options available; see included examples for more details)\n        \n4. Retrieving an agent's PTO Accrual Balance\n    \n    1. [GET PublishedAccrualCalendarReport](https://developer.communitywfm.com/#f23a0f71-1f26-4eb4-8b62-6784167a450e)\n        \n5. Updating an agent's PTO Accrual Balance\n    \n    1. [POST PublishedAccrualCalendar](https://developer.communitywfm.com/#f463557f-78e2-48fb-8d52-4ce40d700f7b)\n        \n\nNote: Be sure to refer to the examples included for each endpoint to see successfully  \ncompleted requests and the response received.\n\n# Glossary\n\nAs you work with the Community WFM API you’ll find that you’re often asked to use ID numbers instead of text values. One of the most common examples is using the Agent ID instead of the Agent’s name. The ID’s help with security by masking potentially sensitive information but can make using the API more difficult. To make finding the ID you need easier, below are a few of the common IDs requested throughout the API as well as the calls you can make to get a list of values you can use.\n\n- AgentId/UserId – These refer to the Community created IDs. AgentId  \n    refers to the agent whose data you want to view/alter/create. UserId defines which users’ security is used for the desired action.\n    \n    - GET - {{envName}}_/api/Agent?requestingAgentId=1_\n        \n- ScheduleId – Schedule ID is an integer that refers to a specific schedule. As multiple schedules can be created in Community WFM you’ll often need to include details on which schedule you’re working with to get accurate results.\n    \n    - GET {{envName}}_/api/WorkingScheduleList?userId=1_\n        \n- ActivityId – The Activities can be thought of as business units. A common example Activity is \"Contact Center\". The ActivityId is an internally generated integer to differentiate between these Activities and is use on reports and agent assignments.\n    \n    - GET {{envName}}_/api/Activity?activityId=NULL&userId=1_\n        \n- {{envName}} - Throughout this documentation you'll find {{envName}} listed as part of the URL. This is a placeholder for your own CommunityWFM url. An example of your URL to replace {{envName}} might look like would be demo.communitywfm.com/CommunityWebApi\n    \n- EventId – This ID designates the specific EventTypes. These can be things like ‘Email Work’, ‘Meeting – QA’, or ‘Training’ and define the states an agent could be in.\n    \n    - GET {{envName}}_/api/EventType?userId=1_\n        \n- ClassificationId – This ID represents the classification of scheduled events. Whereas EventId refers to specific types of events, Classification ID defines the classification for events. ‘Work’, ‘Meeting’, ‘Break & Lunch’\n    \n    - GET {{envName}}_/api/EventTypeClassification/_\n        \n- AccrualProviderId – Community WFM has it’s own built in accrual system which has a value of 1. However, you may opt to set up your own accrual rules or import them in Excel format and these custom Accrual Providers will have their own unique IDs. The call below will detail all Accrual Providers and their IDs.\n    \n    - GET {{envName}}/api/AccrualProvider?userId=1&sourceCulture=&accrualProviderId=\n        \n- TimeZoneID – Unlike most of the other IDs on this list, the Timezone ID uses the Timezone index values defined by Microsoft. There are multiple resources online that will detail Timezone Index numbers as well as in the .NET Framework documentation. You can use GET TimeZone to get a list of all IDs.\n    \n    - GET {{envName}}/api/TimeZone/?id=\n        \n- TransactionFlagID/ListTypeID - These appear throughout the API and are used when there are multiple actions or views available from the endpoint. The description field should indicate what options are available.\n    \n- ScopeTypeID and ScopeID - This combination will appear in several places throughout the API. When an endpoint has both of these they will work together to help limit the scope of whatever you're trying to do. The scopeTypeID will first set what kind of data you're working with. A common value is 1 for Activity. This means whatever you're doing in the API you want to affect/view the Activity level. If we use 1 in the scopeTypeID field then the ScopeID field will now expect an Activity ID. If you were to choose a scopeTypeID of 2 for Supervisors to limit the scope to only those agents under a specific supervisor, now the scopeID field will expect an AgentID; the ID of the supervisor. These two fields always work together setting the type of data with one, and the actual value of that data with the other.\n    \n\n# Endpoints:","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"30606709","team":5701449,"collectionId":"96f0af66-94dc-4390-90ae-e98d251c5896","publishedId":"2sA3JRYeY7","public":true,"publicUrl":"https://developer.communitywfm.com","privateUrl":"https://go.postman.co/documentation/30606709-96f0af66-94dc-4390-90ae-e98d251c5896","customColor":{"top-bar":"FFF","right-sidebar":"777","highlight":"FF8800"},"documentationLayout":"classic-double-column","customisation":{"metaTags":[{"name":"description","value":"The CommunityWebAPI is a Restful service that provides data access to both internal and external clients of Community Workforce Management software. "},{"name":"title","value":""}],"appearance":{"default":"light","themes":[{"name":"dark","logo":"https://content.pstmn.io/d86a3cce-759d-4b1a-85cb-db402062343b/TG9nby5wbmc=","colors":{"top-bar":"212121","right-sidebar":"777","highlight":"FF8800"}},{"name":"light","logo":"https://content.pstmn.io/d86a3cce-759d-4b1a-85cb-db402062343b/TG9nby5wbmc=","colors":{"top-bar":"FFF","right-sidebar":"777","highlight":"FF8800"}}]}},"version":"8.10.1","publishDate":"2024-05-15T23:25:20.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{"title":"","description":"The CommunityWebAPI is a Restful service that provides data access to both internal and external clients of Community Workforce Management software. "},"logos":{"logoLight":"https://content.pstmn.io/d86a3cce-759d-4b1a-85cb-db402062343b/TG9nby5wbmc=","logoDark":"https://content.pstmn.io/d86a3cce-759d-4b1a-85cb-db402062343b/TG9nby5wbmc="}},"statusCode":200},"environments":[],"user":{"authenticated":false,"permissions":{"publish":false}},"run":{"button":{"js":"https://run.pstmn.io/button.js","css":"https://run.pstmn.io/button.css"}},"web":"https://www.getpostman.com/","team":{"logo":"https://res.cloudinary.com/postman/image/upload/t_team_logo_pubdoc/v1/team/9273fba93a3586df36e7c733321b3871e23d03328fd9b0915411770e764e5956","favicon":"https://communitywfm.com/favicon.ico"},"isEnvFetchError":false,"languages":"[{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"HttpClient\"},{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"RestSharp\"},{\"key\":\"curl\",\"label\":\"cURL\",\"variant\":\"cURL\"},{\"key\":\"dart\",\"label\":\"Dart\",\"variant\":\"http\"},{\"key\":\"go\",\"label\":\"Go\",\"variant\":\"Native\"},{\"key\":\"http\",\"label\":\"HTTP\",\"variant\":\"HTTP\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"OkHttp\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"Unirest\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"Fetch\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"jQuery\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"XHR\"},{\"key\":\"c\",\"label\":\"C\",\"variant\":\"libcurl\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Axios\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Native\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Request\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Unirest\"},{\"key\":\"objective-c\",\"label\":\"Objective-C\",\"variant\":\"NSURLSession\"},{\"key\":\"ocaml\",\"label\":\"OCaml\",\"variant\":\"Cohttp\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"cURL\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"Guzzle\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"HTTP_Request2\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"pecl_http\"},{\"key\":\"powershell\",\"label\":\"PowerShell\",\"variant\":\"RestMethod\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"http.client\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"Requests\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"httr\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"RCurl\"},{\"key\":\"ruby\",\"label\":\"Ruby\",\"variant\":\"Net::HTTP\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"Httpie\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"wget\"},{\"key\":\"swift\",\"label\":\"Swift\",\"variant\":\"URLSession\"}]","languageSettings":[{"key":"csharp","label":"C#","variant":"HttpClient"},{"key":"csharp","label":"C#","variant":"RestSharp"},{"key":"curl","label":"cURL","variant":"cURL"},{"key":"dart","label":"Dart","variant":"http"},{"key":"go","label":"Go","variant":"Native"},{"key":"http","label":"HTTP","variant":"HTTP"},{"key":"java","label":"Java","variant":"OkHttp"},{"key":"java","label":"Java","variant":"Unirest"},{"key":"javascript","label":"JavaScript","variant":"Fetch"},{"key":"javascript","label":"JavaScript","variant":"jQuery"},{"key":"javascript","label":"JavaScript","variant":"XHR"},{"key":"c","label":"C","variant":"libcurl"},{"key":"nodejs","label":"NodeJs","variant":"Axios"},{"key":"nodejs","label":"NodeJs","variant":"Native"},{"key":"nodejs","label":"NodeJs","variant":"Request"},{"key":"nodejs","label":"NodeJs","variant":"Unirest"},{"key":"objective-c","label":"Objective-C","variant":"NSURLSession"},{"key":"ocaml","label":"OCaml","variant":"Cohttp"},{"key":"php","label":"PHP","variant":"cURL"},{"key":"php","label":"PHP","variant":"Guzzle"},{"key":"php","label":"PHP","variant":"HTTP_Request2"},{"key":"php","label":"PHP","variant":"pecl_http"},{"key":"powershell","label":"PowerShell","variant":"RestMethod"},{"key":"python","label":"Python","variant":"http.client"},{"key":"python","label":"Python","variant":"Requests"},{"key":"r","label":"R","variant":"httr"},{"key":"r","label":"R","variant":"RCurl"},{"key":"ruby","label":"Ruby","variant":"Net::HTTP"},{"key":"shell","label":"Shell","variant":"Httpie"},{"key":"shell","label":"Shell","variant":"wget"},{"key":"swift","label":"Swift","variant":"URLSession"}],"languageOptions":[{"label":"C# - HttpClient","value":"csharp - HttpClient - C#"},{"label":"C# - RestSharp","value":"csharp - RestSharp - C#"},{"label":"cURL - cURL","value":"curl - cURL - cURL"},{"label":"Dart - http","value":"dart - http - Dart"},{"label":"Go - Native","value":"go - Native - Go"},{"label":"HTTP - HTTP","value":"http - HTTP - HTTP"},{"label":"Java - OkHttp","value":"java - OkHttp - Java"},{"label":"Java - Unirest","value":"java - Unirest - Java"},{"label":"JavaScript - Fetch","value":"javascript - Fetch - JavaScript"},{"label":"JavaScript - jQuery","value":"javascript - jQuery - JavaScript"},{"label":"JavaScript - XHR","value":"javascript - XHR - JavaScript"},{"label":"C - libcurl","value":"c - libcurl - C"},{"label":"NodeJs - Axios","value":"nodejs - Axios - NodeJs"},{"label":"NodeJs - Native","value":"nodejs - Native - NodeJs"},{"label":"NodeJs - Request","value":"nodejs - Request - NodeJs"},{"label":"NodeJs - Unirest","value":"nodejs - Unirest - NodeJs"},{"label":"Objective-C - NSURLSession","value":"objective-c - NSURLSession - Objective-C"},{"label":"OCaml - Cohttp","value":"ocaml - Cohttp - OCaml"},{"label":"PHP - cURL","value":"php - cURL - PHP"},{"label":"PHP - Guzzle","value":"php - Guzzle - PHP"},{"label":"PHP - HTTP_Request2","value":"php - HTTP_Request2 - PHP"},{"label":"PHP - pecl_http","value":"php - pecl_http - PHP"},{"label":"PowerShell - RestMethod","value":"powershell - RestMethod - PowerShell"},{"label":"Python - http.client","value":"python - http.client - Python"},{"label":"Python - Requests","value":"python - Requests - Python"},{"label":"R - httr","value":"r - httr - R"},{"label":"R - RCurl","value":"r - RCurl - R"},{"label":"Ruby - Net::HTTP","value":"ruby - Net::HTTP - Ruby"},{"label":"Shell - Httpie","value":"shell - Httpie - Shell"},{"label":"Shell - wget","value":"shell - wget - Shell"},{"label":"Swift - URLSession","value":"swift - URLSession - Swift"}],"layoutOptions":[{"value":"classic-single-column","label":"Single Column"},{"value":"classic-double-column","label":"Double Column"}],"versionOptions":[],"environmentOptions":[{"value":"0","label":"No Environment"}],"canonicalUrl":"https://developer.communitywfm.com/view/metadata/2sA3JRYeY7"}