not taking input

im trying to make a dialogue system for my game and i followed an online tutorial and did some changes in it but it only shows talk on screen but its not taking input instead shows ‘input not found’ in the log. the original coding was working fine for me but the code in not working anymore after my changes. can anyone tell me what am i doing wrong? im stuck at this

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class DialogueScript : MonoBehaviour {

public GameObject ActionCanvas;
public GameObject ActionChar;//shows [e] on screen 
public GameObject ActionText;//shows talk on screen
public GameObject DialogueCanvas;
public GameObject TextBox;//panel
public GameObject DialogueName;//name textbox 
public GameObject DialogueText;//text textbox 

void OnTriggerEnter(Collider col)
	ActionText.GetComponent<Text> ().text = "Talk";
	ActionCanvas.SetActive (true);

	if (Input.GetButtonDown ("Action")) {
		ActionCanvas.SetActive (false);
		StartCoroutine (NPC001Active ());
		Debug.Log("input not found", gameObject);


IEnumerator NPC001Active () {
	DialogueCanvas.SetActive (true);
	TextBox.SetActive (true);
	DialogueName.GetComponent<Text> ().text = "Warrior";
	DialogueText.GetComponent<Text>().text = "Hello friend, I may have a quest for you if you wish to accept it. Please come back later on this afternoon.";
	yield return new WaitForSeconds(5.5f);

	DialogueCanvas.SetActive (false);
	ActionCanvas.SetActive (true);


It has nearly no chances (if any) to work. The game need to meet two requirements to show dialogue. First OnTriggerEnterneed to occure which is called once and at the same time Action button need to be pressed not held down. As you can see the situation is nearly impossible.