diff --git a/buffet/buffet_client.cc b/buffet/buffet_client.cc
index 79e7cdf..355d39b 100644
--- a/buffet/buffet_client.cc
+++ b/buffet/buffet_client.cc
@@ -356,7 +356,8 @@
 
   void CallAddCommand(const std::string& command, ManagerProxy* manager_proxy) {
     ErrorPtr error;
-    if (!manager_proxy->AddCommand(command, &error)) {
+    std::string id;
+    if (!manager_proxy->AddCommand(command, &id, &error)) {
       return ReportError(error.get());
     }
     OnJobComplete();
diff --git a/buffet/dbus_bindings/org.chromium.Buffet.Manager.xml b/buffet/dbus_bindings/org.chromium.Buffet.Manager.xml
index 8b59b42..249700c 100644
--- a/buffet/dbus_bindings/org.chromium.Buffet.Manager.xml
+++ b/buffet/dbus_bindings/org.chromium.Buffet.Manager.xml
@@ -31,6 +31,7 @@
     </method>
     <method name="AddCommand">
       <arg name="json_command" type="s" direction="in"/>
+      <arg name="id" type="s" direction="out"/>
       <annotation name="org.chromium.DBus.Method.Kind" value="async"/>
     </method>
     <method name="GetCommand">
diff --git a/buffet/manager.cc b/buffet/manager.cc
index 01f73b1..e486d5a 100644
--- a/buffet/manager.cc
+++ b/buffet/manager.cc
@@ -165,7 +165,7 @@
   return true;
 }
 
-void Manager::AddCommand(DBusMethodResponse<> response,
+void Manager::AddCommand(DBusMethodResponse<std::string> response,
                          const std::string& json_command) {
   static int next_id = 0;
   std::string error_message;
@@ -184,9 +184,10 @@
     response->ReplyWithError(error.get());
     return;
   }
-  command_instance->SetID(std::to_string(++next_id));
+  std::string id = std::to_string(++next_id);
+  command_instance->SetID(id);
   command_manager_->AddCommand(std::move(command_instance));
-  response->Return();
+  response->Return(id);
 }
 
 void Manager::GetCommand(DBusMethodResponse<std::string> response,
diff --git a/buffet/manager.h b/buffet/manager.h
index d61c6fa..f44e075 100644
--- a/buffet/manager.h
+++ b/buffet/manager.h
@@ -68,7 +68,7 @@
   // Handles calls to org.chromium.Buffet.Manager.GetState().
   bool GetState(chromeos::ErrorPtr* error, std::string* state) override;
   // Handles calls to org.chromium.Buffet.Manager.AddCommand().
-  void AddCommand(DBusMethodResponse<> response,
+  void AddCommand(DBusMethodResponse<std::string> response,
                   const std::string& json_command) override;
   // Handles calls to org.chromium.Buffet.Manager.GetCommand().
   void GetCommand(DBusMethodResponse<std::string> response,
