참조 사이트:
https://tookanapi.docs.apiary.io/#

Task

종류

  • 픽업 (Pickup Task)
  • 배달 (Delivery Task)
  • 픽업과 배달 (Pickup & Delivery Task)
  • 심부름? (Appointment Task)

상태

  • Assigned (0): 태스크가 에이전트에게 배정됨
  • Started (1): 에이전트가 태스크를 시작함
  • Successful (2): 태스크가 성공적으로 완료됨
  • Failed (3): 태스크가 실패함
  • InProgress (4): 현재 태스크가 수행 중이며, 에이전트가 목표 지점에 근접했음
  • Unassigned (6): 태스크가 아직 에이전트에게 할당되지 않음
  • Accepted (7): 배정된 에이전트가 태스크를 수락함
  • Decline (8): 에이전트가 태스크를 거부함
  • Cancel (9): 에이전트가 태스크를 취소함
  • Deleted (10): 대시보드에서 태스크를 제거함

API

  • Task 생성
    • csv로부터 생성
    • Tookan의 주문 양식을 이용한 고객의 task 생성
    • multiple task 생성: 한번에 여러 배달 업무를 수행하는 task
  • Task 관리
    • 수정 / 삭제
    • 시작 / 취소 / 배정 / 자동배정
    • 상태(status) 변경
  • Task 가져오기
    • 검색
    • 상세 정보 가져오기
    • 주문 번호로부터 task 가져오기

Agent

픽업과 배달을 담당

API

  • Agent 관리
    • 생성 / 수정 / 삭제
    • 차단: 배정을 금지 시키는 듯
    • 태그 관리
  • Agent 가져오기
    • 프로필 가져오기
    • 스케줄 가져오기
    • 히스토리 가져오기
    • 실시간 위치 가져오기
  • Task 배정
  • Notification 보내기

Team

에이전트들을 묶는 그룹 단위

API

  • Team 관리
    • 생성 / 수정 / 삭제
  • Team 가져오기
    • 상세 정보 가져오기
    • Job과 Agent 정보 가져오기

Manager

Task와 Agent를 다루는 관리자. Team 단위로 권한을 제한 할 수도 있음.

API

  • Manager 관리
    • 생성 / 삭제
  • Manager 가져오기
    • 전체 manager 가져오기

Customers

픽업 배달을 요청하는 고객

API

  • Customer 관리
    • 생성 / 수정 / 삭제
  • Customer 가져오기
    • 정보 가져오기
    • 프로필 가져오기
    • 전화번호로 검색
    • 이름으로 검색

User

API 사용자로 서비스 전반의 기능들을 관리.

API

  • User 등록
  • User 관리
    • 전화번호 변경
    • 비밀번호 변경
    • 이메일 중복 확인

Merchant

사장님. 대시보드에 직접 로그인해서 agent나 task등을 관리 할 수 있음. Tookan 마켓플레이스에서 Multi Merchant Marketplace를 활성화해야 merchant를 생성 할 수 있음.

API

  • Merchant 관리
    • 생성 / 수정 / 삭제
    • 차단
  • Merchant 가져오기
    • 검색
    • 상세 정보 가져오기
    • 리포트 가져오기
    • Team 가져오기
  • Merchant Task 관리
    • 생성 / 수정 / 삭제
  • Agent 관리
    • 가용 Agent 검색
    • Task 할당

Geofence

fleet이 활동하는 구역(reigon)을 정의

API

  • Reigon 관리
    • 생성 / 수정 / 삭제
  • Reigon 가져오기
    • 정보 가져오기
    • 상세 정보 가져오기
  • 특정 Agent로부터 region을 제거

Mission

여러 workflow로부터 만들어진 task들을 합쳐서 mission을 생성하고 이를 여러 agent에게 할당 가능

API

  • Mission Task 만들기
  • Mission 목록 보기
  • Mission 삭제

Webhook

Tookan에서 우리 서비스로 정보를 전달. 넘어온 job_id와 job_status로 상태를 체크할 수 있음. 넘어온 요청이 tookan으로부터 넘어온 것인지 검증하기 위해 tookan_shared_secret 파라메터를 비교. task_history=1을 붙여서 요청하면 태스크 히스토리도 함께 보내줌.

샘플

{ 
  "user_id": "1",
  "team_id": "56",
  "session_id": "",
  "auto_assignment": "0",
  "timezone": "-330",
  "sign_image": "https://app.tookanapp.com",
  "order_id": "",
  "tookan_shared_secret": "",
  "dispatcher_id": "",
  "completed_by_admin": "0",
  "has_pickup": "1",
  "has_delivery": "1",
  "is_routed": "0",
  "is_active": "1",
  "is_customer_rated": "0",
  "pickup_delivery_relationship": "cd7dd3e12424de76141787af773782c9100",
  "total_distance_travelled": "0",
  "total_time_spent_at_task_till_completion": "15",
  "fleet_id": "3635",
  "fleet_name": "SumeetRana",
  "fleet_email": "JonSnow@example.com",
  "fleet_rating": "0",
  "customer_id": "1074",
  "customer_username": "sesas",
  "customer_email": "",
  "customer_comment": "",
  "customer_phone": "+13334445555",
  "job_id": "236365",
  "job_type": "1",
  "job_state": "Successful",
  "job_status": "2",
  "job_token": "cd7dd3e12424de76141787af773782c9100",
  "job_hash": "c48fcd2646c282ad3576e9b096c1d798",
  "job_address": "114, Sansome St Ste 250, San Francisco, CA, USA",
  "job_pickup_phone": "+917837173739",
  "job_description": "adsfasd",
  "job_latitude": "37.7913917",
  "job_longitude": "-122.4008504",
  "job_pickup_name": "Jon Snow",
  "job_pickup_email": "sumeet@clicklabs.in",
  "job_pickup_address": "CDCL,MadhyaMarg,Chandigarh,India",
  "job_pickup_longitude": "-122.4008504",
  "job_pickup_latitude": "30.7397101",
  "custom_fields": [
    {
      "label": "Customer_Name",
      "value": 1,
      "required": 1,
      "data_type": "Text",
      "app_side": 1,
      "data": "",
      "template_id": "booking_information",
      "item_id": 0,
      "fleet_data": "harry"
    },
    {
      "label": "CustomerImage",
      "value": 1,
      "required": 1,
      "data_type": "Image",
      "app_side": 1,
      "data": "",
      "template_id": "booking_information",
      "item_id": 0,
      "fleet_data": "['https: //tookan.s3.amazonaws.com/task_images/zJOw1452514280545-TOOKAN_11012016_053825.jpg']"
    },
    {
      "label": "Vehicle_selected",
      "value": 1,
      "required": 1,
      "data_type": "Dropdown",
      "app_side": 1,
      "data": "Bike, Van, Truck",
      "template_id": "booking_information",
      "item_id": 0,
      "dropdown": [
          {
              "id": 0,
              "value": "Bike"
          },
          {
              "id": 1,
              "value": " Van"
          },
          {
              "id": 2,
              "value": " Truck"
          }
      ]
    },
    {
      "label": "Date",
      "value": 1,
      "required": 1,
      "data_type": "Date",
      "app_side": 1,
      "data": "",
      "template_id": "booking_information",
      "item_id": 0
    },
    {
      "label": "Amount",
      "value": 1,
      "required": 1,
      "data_type": "Number",
      "app_side": 1,
      "data": "",
      "template_id": "booking_information",
      "item_id": 0
    },
    {
      "label": "Gender",
      "value": 1,
      "required": 1,
      "data_type": "Dropdown",
      "app_side": 0,
      "data": "Male,Female",
      "template_id": "booking_information",
      "item_id": 0,
      "dropdown": [
        {
          "id": 0,
          "value": "Male"
        },
        {
          "id": 1,
          "value": "Female"
        }
      ]
    },
    {
      "label": "Gender",
      "value": 1,
      "required": 1,
      "data_type": "Dropdown",
      "app_side": 1,
      "data": "Male,Female",
      "template_id": "booking_information",
      "item_id": 0,
      "dropdown": [
        {
          "id": 0,
          "value": "Male"
        },
        {
          "id": 1,
          "value": "Female"
        }
      ]
    },
    {
      "label": "ID_Image",
      "value": 1,
      "required": 1,
      "data_type": "Image",
      "app_side": 1,
      "data": "",
      "template_id": "booking_information",
      "item_id": 0,
      "fleet_data": "['https: //tookan.s3.amazonaws.com/task_images/PZyQ1452514382208-TOOKAN_11012016_054006.jpg']"
    }
  ],
  "task_history": [
    {
      "id": 235973,
      "job_id": 85185,
      "fleet_id": 3829,
      "fleet_name": "bobby singh",
      "latitude": "30.7192552",
      "longitude": "76.8102558",
      "type": "state_changed",
      "description": "Status updated from Assigned to Unassigned",
      "creation_datetime": "2016-01-11T09:34:17.000Z"
    },
    {
      "id": 236365,
      "job_id": 85185,
      "fleet_id": 3635,
      "fleet_name": "Rusty B",
      "latitude": "30.7193512",
      "longitude": "76.8102679",
      "type": "state_changed",
      "description": "Accepted at",
      "creation_datetime": "2016-01-11T12:11:02.000Z"
    },
    {
      "id": 236366,
      "job_id": 85185,
      "fleet_id": 3635,
      "fleet_name": "Rusty B",
      "latitude": "30.7193512",
      "longitude": "76.8102679",
      "type": "state_changed",
      "description": "Started at",
      "creation_datetime": "2016-01-11T12:11:04.000Z"
    },
    {
      "id": 236367,
      "job_id": 85185,
      "fleet_id": 3635
      "fleet_name": "Rusty B",
      "latitude": "30.7195829",
      "longitude": "76.8101409",
      "type": "state_changed",
      "description": "Arrived at",
      "creation_datetime": "2016-01-11T12:11:07.000Z"
    },
    {
      "id": 236368,
      "job_id": 85185,
      "fleet_id": 3635,
      "fleet_name": "Rusty B",
      "latitude": "30.7183782",
      "longitude": "76.8096116",
      "type": "custom_field_updated",
      "description": "
        {
          'label':'CustomerImage',
          'value':1,'required':1,
          'data_type':'Image',
          'app_side':1,
          'data':'',
          'template_id':'booking_information',
          'item_id':0,
          'fleet_data':'https: //tookan.s3.amazonaws.com/task_images/zJOw1452514280545-TOOKAN_11012016_053825.jpg'
        }",
      "creation_datetime": "2016-01-11T12:12:46.000Z"
    },
    {
      "id": 236376,
      "job_id": 85185,
      "fleet_id": 3635,
      "fleet_name": "Rusty B",
      "latitude": "30.7183782",
      "longitude": "76.8096116",
      "type": "text_added",
      "description": "vcvvvv",
      "creation_datetime": "2016-01-11T12:13:14.000Z"
    },
    {
      "id": 236377,
      "job_id": 85185,
      "fleet_id": 3635,
      "fleet_name": "Rusty B",
      "latitude": "30.7194513",
      "longitude": "76.8103432",
      "type": "image_added",
      "description": "https://tookan.s3.amazonaws.com/acknowledgement_images/JhTU1452514406350-TOOKAN_11012016_054030.jpg",
      "creation_datetime": "2016-01-11T12:13:27.000Z"
    },
    {
      "id": 236378,
      "job_id": 85185,
      "fleet_id": 3635,
      "fleet_name": "Rusty B",
      "latitude": "30.7194513",
      "longitude": "76.8103432",
      "type": "signature_image_added",
      "description": "https://tookan.s3.amazonaws.com/acknowledgement_images/srA51452514416346-task_signature.png",
      "creation_datetime": "2016-01-11T12:13:36.000Z"
    },
    {
      "id": 236379,
      "job_id": 85185,
      "fleet_id": 3635,
      "fleet_name": "Rusty B",
      "latitude": "30.7194513",
      "longitude": "76.8103432",
      "type": "state_changed",
      "description": "Successful at",
      "creation_datetime": "2016-01-11T12:13:42.000Z"
    }
  ]
}