docs: function passThreadControl (psid, target_app_id, metadata) {  
    return new Promise (async (resolve, reject) => {
      if (!target_app_id) {
        reject('target_app_id required');
      } else if (target_app_id === 'page_inbox') {
        target_app_id = 263902037430900;
      }
  
      if (!psid) {
        reject('PSID required to identify the thread to enact handover for');
      }
      
  
      let payload = {
        'recipient': {
          'id': psid
        },
        'target_app_id': target_app_id
      };
  
      if (metadata) {
        payload.metadata = metadata
      }
  
      try {
        let request_options = {
          'path': '/me/pass_thread_control',
          'payload': payload
        };
  
        let response = await this.sendGraphRequest(request_options);
        resolve(response);
      } catch (e) {
        reject(e);
      }
    });
  }